File nimblackout_cdcb61a30a7792894fa45c1f0889c58ec8799e5c06ad9690f7fc38be12dea221.exe
Function:
    004028d0
    004028d0dollar___systemZwidestrs_260:
    004028d0push rbp
    004028d1mov rbp, rsp
    004028d4sub rsp, 160
    004028dbmov [rbp+16], rcx
    004028dfmov [rbp+24], rdx
    004028e3mov [rbp+32], r8
    004028e7lea rax, [rip+0x2ab31]
    004028eemov [rbp-88], rax
    004028f2lea rax, [rip+0x2aadf]
    004028f9mov [rbp-72], rax
    004028fdmov [rbp-80], 0
    00402905mov [rbp-64], 0
    0040290blea rax, [rbp-96]
    0040290fmov rcx, rax
    00402912call nimFrame
    00402917mov [rbp-8], 0
    0040291fmov [rbp-80], 177
    00402927lea rax, [rip+0x2aaaa]
    0040292emov [rbp-72], rax
    00402932mov rax, [rbp+24]
    00402936sar rax, 2
    0040293amov rdx, rax
    0040293dmov ecx, 0
    00402942mov rax, [rbp+24]
    00402946add rax, rdx
    00402949jno 0x402950
    0040294bmov ecx, 1
    00402950
    00402950loc_402950:
    00402950mov rdx, rax
    00402953lea rax, [rbp-48]
    00402957mov [rax], rdx
    0040295amov rax, rcx
    0040295dand eax, 1
    00402960test al, al
    00402962je 0x402969
    00402964call raiseOverflow
    00402969
    00402969loc_402969:
    00402969mov rax, [rbp-48]
    0040296dtest rax, rax
    00402970jns 0x40298d
    00402972mov rax, [rbp-48]
    00402976mov r8, 0x7fffffffffffffff
    00402980mov edx, 0
    00402985mov rcx, rax
    00402988call raiseRangeErrorI
    0040298d
    0040298dloc_40298d:
    0040298dmov rax, [rbp-48]
    00402991mov rcx, rax
    00402994call rawNewString
    00402999mov [rbp-8], rax
    0040299dmov [rbp-80], 179
    004029a5lea rax, [rip+0x2aa2c]
    004029acmov [rbp-72], rax
    004029b0mov [rbp-16], 0
    004029b8mov [rbp-80], 180
    004029c0lea rax, [rip+0x2aa11]
    004029c7mov [rbp-72], rax
    004029cb
    004029cbloc_4029cb:
    004029cbmov rax, [rbp-16]
    004029cflea rdx, [rax+rax]
    004029d3mov rax, [rbp+16]
    004029d7add rax, rdx
    004029damovzx eax, [rax]
    004029ddtest ax, ax
    004029e0je 0x403192
    004029e6mov [rbp-80], 181
    004029eelea rax, [rip+0x2a9e3]
    004029f5mov [rbp-72], rax
    004029f9mov rax, [rbp-16]
    004029fdlea rdx, [rax+rax]
    00402a01mov rax, [rbp+16]
    00402a05add rax, rdx
    00402a08movzx eax, [rax]
    00402a0bcwde
    00402a0cmov ecx, eax
    00402a0ecall ord__systemZwidestrs_8
    00402a13mov [rbp-24], rax
    00402a17mov [rbp-80], 182
    00402a1flea rax, [rip+0x2a9b2]
    00402a26mov [rbp-72], rax
    00402a2amov edx, 0
    00402a2fmov rax, [rbp-16]
    00402a33add rax, 1
    00402a37jno 0x402a3e
    00402a39mov edx, 1
    00402a3e
    00402a3eloc_402a3e:
    00402a3emov rcx, rax
    00402a41lea rax, [rbp-104]
    00402a45mov [rax], rcx
    00402a48mov rax, rdx
    00402a4band eax, 1
    00402a4etest al, al
    00402a50je 0x402a57
    00402a52call raiseOverflow
    00402a57
    00402a57loc_402a57:
    00402a57mov rax, [rbp-104]
    00402a5bmov [rbp-16], rax
    00402a5fmov [rbp-80], 183
    00402a67lea rax, [rip+0x2a96a]
    00402a6emov [rbp-72], rax
    00402a72mov [rbp-25], 0
    00402a76cmp [rbp-24], 55295
    00402a7esetg al
    00402a81mov [rbp-25], al
    00402a84movzx eax, [rbp-25]
    00402a88xor eax, 1
    00402a8btest al, al
    00402a8djne 0x402a9f
    00402a8fcmp [rbp-24], 56319
    00402a97setle al
    00402a9amov [rbp-25], al
    00402a9djmp 0x402aa0
    00402a9f
    00402a9floc_402a9f:
    00402a9fnop
    00402aa0
    00402aa0loc_402aa0:
    00402aa0movzx eax, [rbp-25]
    00402aa4xor eax, 1
    00402aa7test al, al
    00402aa9jne 0x402c27
    00402aafmov [rbp-80], 185
    00402ab7lea rax, [rip+0x2a91a]
    00402abemov [rbp-72], rax
    00402ac2mov rax, [rbp-16]
    00402ac6lea rdx, [rax+rax]
    00402acamov rax, [rbp+16]
    00402aceadd rax, rdx
    00402ad1movzx eax, [rax]
    00402ad4cwde
    00402ad5mov ecx, eax
    00402ad7call ord__systemZwidestrs_8
    00402adcmov [rbp-40], rax
    00402ae0mov [rbp-80], 188
    00402ae8lea rax, [rip+0x2a8e9]
    00402aefmov [rbp-72], rax
    00402af3mov [rbp-26], 0
    00402af7cmp [rbp-40], 56319
    00402affsetg al
    00402b02mov [rbp-26], al
    00402b05movzx eax, [rbp-26]
    00402b09xor eax, 1
    00402b0ctest al, al
    00402b0ejne 0x402b20
    00402b10cmp [rbp-40], 57343
    00402b18setle al
    00402b1bmov [rbp-26], al
    00402b1ejmp 0x402b21
    00402b20
    00402b20loc_402b20:
    00402b20nop
    00402b21
    00402b21loc_402b21:
    00402b21movzx eax, [rbp-26]
    00402b25xor eax, 1
    00402b28test al, al
    00402b2ajne 0x402c09
    00402b30mov [rbp-80], 189
    00402b38lea rax, [rip+0x2a899]
    00402b3fmov [rbp-72], rax
    00402b43mov rax, [rbp-24]
    00402b47shl rax, 10
    00402b4band eax, 0xffc00
    00402b50mov rdx, rax
    00402b53mov rax, [rbp-40]
    00402b57and eax, 1023
    00402b5cmov ecx, 0
    00402b61add rax, rdx
    00402b64jno 0x402b6b
    00402b66mov ecx, 1
    00402b6b
    00402b6bloc_402b6b:
    00402b6bmov rdx, rax
    00402b6elea rax, [rbp-112]
    00402b72mov [rax], rdx
    00402b75mov rax, rcx
    00402b78and eax, 1
    00402b7btest al, al
    00402b7dje 0x402b84
    00402b7fcall raiseOverflow
    00402b84
    00402b84loc_402b84:
    00402b84mov rax, [rbp-112]
    00402b88mov edx, 0
    00402b8dadd rax, 0x10000
    00402b93jno 0x402b9a
    00402b95mov edx, 1
    00402b9a
    00402b9aloc_402b9a:
    00402b9amov rcx, rax
    00402b9dlea rax, [rbp-120]
    00402ba1mov [rax], rcx
    00402ba4mov rax, rdx
    00402ba7and eax, 1
    00402baatest al, al
    00402bacje 0x402bb3
    00402baecall raiseOverflow
    00402bb3
    00402bb3loc_402bb3:
    00402bb3mov rax, [rbp-120]
    00402bb7mov [rbp-24], rax
    00402bbbmov [rbp-80], 190
    00402bc3lea rax, [rip+0x2a80e]
    00402bcamov [rbp-72], rax
    00402bcemov edx, 0
    00402bd3mov rax, [rbp-16]
    00402bd7add rax, 1
    00402bdbjno 0x402be2
    00402bddmov edx, 1
    00402be2
    00402be2loc_402be2:
    00402be2mov rcx, rax
    00402be5lea rax, [rbp-128]
    00402be9mov [rax], rcx
    00402becmov rax, rdx
    00402befand eax, 1
    00402bf2test al, al
    00402bf4je 0x402bfb
    00402bf6call raiseOverflow
    00402bfb
    00402bfbloc_402bfb:
    00402bfbmov rax, [rbp-128]
    00402bffmov [rbp-16], rax
    00402c03nop
    00402c04jmp 0x402c92
    00402c09
    00402c09loc_402c09:
    00402c09nop
    00402c0amov [rbp-80], 193
    00402c12lea rax, [rip+0x2a7bf]
    00402c19mov [rbp-72], rax
    00402c1dmov rax, [rbp+32]
    00402c21mov [rbp-24], rax
    00402c25jmp 0x402c92
    00402c27
    00402c27loc_402c27:
    00402c27nop
    00402c28mov [rbp-80], 194
    00402c30lea rax, [rip+0x2a7a1]
    00402c37mov [rbp-72], rax
    00402c3bmov [rbp-27], 0
    00402c3fcmp [rbp-24], 56319
    00402c47setg al
    00402c4amov [rbp-27], al
    00402c4dmovzx eax, [rbp-27]
    00402c51xor eax, 1
    00402c54test al, al
    00402c56jne 0x402c68
    00402c58cmp [rbp-24], 57343
    00402c60setle al
    00402c63mov [rbp-27], al
    00402c66jmp 0x402c69
    00402c68
    00402c68loc_402c68:
    00402c68nop
    00402c69
    00402c69loc_402c69:
    00402c69movzx eax, [rbp-27]
    00402c6dxor eax, 1
    00402c70test al, al
    00402c72jne 0x402c91
    00402c74mov [rbp-80], 196
    00402c7clea rax, [rip+0x2a755]
    00402c83mov [rbp-72], rax
    00402c87mov rax, [rbp+32]
    00402c8bmov [rbp-24], rax
    00402c8fjmp 0x402c92
    00402c91
    00402c91loc_402c91:
    00402c91nop
    00402c92
    00402c92loc_402c92:
    00402c92mov [rbp-80], 198
    00402c9alea rax, [rip+0x2a737]
    00402ca1mov [rbp-72], rax
    00402ca5cmp [rbp-24], 127
    00402caajg 0x402d03
    00402cacmov [rbp-80], 199
    00402cb4lea rax, [rip+0x2a71d]
    00402cbbmov [rbp-72], rax
    00402cbfcmp [rbp-24], 0
    00402cc4js 0x402cd0
    00402cc6cmp [rbp-24], 255
    00402ccejle 0x402ce7
    00402cd0
    00402cd0loc_402cd0:
    00402cd0mov rax, [rbp-24]
    00402cd4mov r8l, 255
    00402cdamov edx, 0
    00402cdfmov rcx, rax
    00402ce2call raiseRangeErrorI
    00402ce7
    00402ce7loc_402ce7:
    00402ce7mov rax, [rbp-24]
    00402cebmovsx edx, al
    00402ceemov rax, [rbp-8]
    00402cf2mov rcx, rax
    00402cf5call addChar
    00402cfamov [rbp-8], rax
    00402cfejmp 0x40318d
    00402d03
    00402d03loc_402d03:
    00402d03nop
    00402d04mov [rbp-80], 200
    00402d0clea rax, [rip+0x2a6c5]
    00402d13mov [rbp-72], rax
    00402d17cmp [rbp-24], 2047
    00402d1fjg 0x402df6
    00402d25mov [rbp-80], 201
    00402d2dlea rax, [rip+0x2a6a4]
    00402d34mov [rbp-72], rax
    00402d38mov rax, [rbp-24]
    00402d3csar rax, 6
    00402d40or al, 192
    00402d42test rax, rax
    00402d45js 0x402d59
    00402d47mov rax, [rbp-24]
    00402d4bsar rax, 6
    00402d4for al, 192
    00402d51cmp rax, 255
    00402d57jle 0x402d76
    00402d59
    00402d59loc_402d59:
    00402d59mov rax, [rbp-24]
    00402d5dsar rax, 6
    00402d61or al, 192
    00402d63mov r8l, 255
    00402d69mov edx, 0
    00402d6emov rcx, rax
    00402d71call raiseRangeErrorI
    00402d76
    00402d76loc_402d76:
    00402d76mov rax, [rbp-24]
    00402d7asar rax, 6
    00402d7eor eax, -64
    00402d81movsx edx, al
    00402d84mov rax, [rbp-8]
    00402d88mov rcx, rax
    00402d8bcall addChar
    00402d90mov [rbp-8], rax
    00402d94mov [rbp-80], 202
    00402d9clea rax, [rip+0x2a635]
    00402da3mov [rbp-72], rax
    00402da7mov rax, [rbp-24]
    00402daband eax, 63
    00402daeor al, 128
    00402db0cmp rax, 255
    00402db6jle 0x402dd4
    00402db8mov rax, [rbp-24]
    00402dbcand eax, 63
    00402dbfor al, 128
    00402dc1mov r8l, 255
    00402dc7mov edx, 0
    00402dccmov rcx, rax
    00402dcfcall raiseRangeErrorI
    00402dd4
    00402dd4loc_402dd4:
    00402dd4mov rax, [rbp-24]
    00402dd8and eax, 63
    00402ddbor eax, -128
    00402ddemovsx edx, al
    00402de1mov rax, [rbp-8]
    00402de5mov rcx, rax
    00402de8call addChar
    00402dedmov [rbp-8], rax
    00402df1jmp 0x40318d
    00402df6
    00402df6loc_402df6:
    00402df6nop
    00402df7mov [rbp-80], 203
    00402dfflea rax, [rip+0x2a5d2]
    00402e06mov [rbp-72], rax
    00402e0acmp [rbp-24], 65535
    00402e12jg 0x402f52
    00402e18mov [rbp-80], 204
    00402e20lea rax, [rip+0x2a5b1]
    00402e27mov [rbp-72], rax
    00402e2bmov rax, [rbp-24]
    00402e2fsar rax, 12
    00402e33or al, 224
    00402e35test rax, rax
    00402e38js 0x402e4c
    00402e3amov rax, [rbp-24]
    00402e3esar rax, 12
    00402e42or al, 224
    00402e44cmp rax, 255
    00402e4ajle 0x402e69
    00402e4c
    00402e4cloc_402e4c:
    00402e4cmov rax, [rbp-24]
    00402e50sar rax, 12
    00402e54or al, 224
    00402e56mov r8l, 255
    00402e5cmov edx, 0
    00402e61mov rcx, rax
    00402e64call raiseRangeErrorI
    00402e69
    00402e69loc_402e69:
    00402e69mov rax, [rbp-24]
    00402e6dsar rax, 12
    00402e71or eax, -32
    00402e74movsx edx, al
    00402e77mov rax, [rbp-8]
    00402e7bmov rcx, rax
    00402e7ecall addChar
    00402e83mov [rbp-8], rax
    00402e87mov [rbp-80], 205
    00402e8flea rax, [rip+0x2a542]
    00402e96mov [rbp-72], rax
    00402e9amov rax, [rbp-24]
    00402e9esar rax, 6
    00402ea2and eax, 63
    00402ea5or al, 128
    00402ea7cmp rax, 255
    00402eadjle 0x402ecf
    00402eafmov rax, [rbp-24]
    00402eb3sar rax, 6
    00402eb7and eax, 63
    00402ebaor al, 128
    00402ebcmov r8l, 255
    00402ec2mov edx, 0
    00402ec7mov rcx, rax
    00402ecacall raiseRangeErrorI
    00402ecf
    00402ecfloc_402ecf:
    00402ecfmov rax, [rbp-24]
    00402ed3sar rax, 6
    00402ed7and eax, 63
    00402edaor eax, -128
    00402eddmovsx edx, al
    00402ee0mov rax, [rbp-8]
    00402ee4mov rcx, rax
    00402ee7call addChar
    00402eecmov [rbp-8], rax
    00402ef0mov [rbp-80], 206
    00402ef8lea rax, [rip+0x2a4d9]
    00402effmov [rbp-72], rax
    00402f03mov rax, [rbp-24]
    00402f07and eax, 63
    00402f0aor al, 128
    00402f0ccmp rax, 255
    00402f12jle 0x402f30
    00402f14mov rax, [rbp-24]
    00402f18and eax, 63
    00402f1bor al, 128
    00402f1dmov r8l, 255
    00402f23mov edx, 0
    00402f28mov rcx, rax
    00402f2bcall raiseRangeErrorI
    00402f30
    00402f30loc_402f30:
    00402f30mov rax, [rbp-24]
    00402f34and eax, 63
    00402f37or eax, -128
    00402f3amovsx edx, al
    00402f3dmov rax, [rbp-8]
    00402f41mov rcx, rax
    00402f44call addChar
    00402f49mov [rbp-8], rax
    00402f4djmp 0x40318d
    00402f52
    00402f52loc_402f52:
    00402f52nop
    00402f53mov [rbp-80], 207
    00402f5blea rax, [rip+0x2a476]
    00402f62mov [rbp-72], rax
    00402f66cmp [rbp-24], 0x10ffff
    00402f6ejg 0x403114
    00402f74mov [rbp-80], 208
    00402f7clea rax, [rip+0x2a455]
    00402f83mov [rbp-72], rax
    00402f87mov rax, [rbp-24]
    00402f8bsar rax, 18
    00402f8for al, 240
    00402f91test rax, rax
    00402f94js 0x402fa8
    00402f96mov rax, [rbp-24]
    00402f9asar rax, 18
    00402f9eor al, 240
    00402fa0cmp rax, 255
    00402fa6jle 0x402fc5
    00402fa8
    00402fa8loc_402fa8:
    00402fa8mov rax, [rbp-24]
    00402facsar rax, 18
    00402fb0or al, 240
    00402fb2mov r8l, 255
    00402fb8mov edx, 0
    00402fbdmov rcx, rax
    00402fc0call raiseRangeErrorI
    00402fc5
    00402fc5loc_402fc5:
    00402fc5mov rax, [rbp-24]
    00402fc9sar rax, 18
    00402fcdor eax, -16
    00402fd0movsx edx, al
    00402fd3mov rax, [rbp-8]
    00402fd7mov rcx, rax
    00402fdacall addChar
    00402fdfmov [rbp-8], rax
    00402fe3mov [rbp-80], 209
    00402feblea rax, [rip+0x2a3e6]
    00402ff2mov [rbp-72], rax
    00402ff6mov rax, [rbp-24]
    00402ffasar rax, 12
    00402ffeand eax, 63
    00403001or al, 128
    00403003cmp rax, 255
    00403009jle 0x40302b
    0040300bmov rax, [rbp-24]
    0040300fsar rax, 12
    00403013and eax, 63
    00403016or al, 128
    00403018mov r8l, 255
    0040301emov edx, 0
    00403023mov rcx, rax
    00403026call raiseRangeErrorI
    0040302b
    0040302bloc_40302b:
    0040302bmov rax, [rbp-24]
    0040302fsar rax, 12
    00403033and eax, 63
    00403036or eax, -128
    00403039movsx edx, al
    0040303cmov rax, [rbp-8]
    00403040mov rcx, rax
    00403043call addChar
    00403048mov [rbp-8], rax
    0040304cmov [rbp-80], 210
    00403054lea rax, [rip+0x2a37d]
    0040305bmov [rbp-72], rax
    0040305fmov rax, [rbp-24]
    00403063sar rax, 6
    00403067and eax, 63
    0040306aor al, 128
    0040306ccmp rax, 255
    00403072jle 0x403094
    00403074mov rax, [rbp-24]
    00403078sar rax, 6
    0040307cand eax, 63
    0040307for al, 128
    00403081mov r8l, 255
    00403087mov edx, 0
    0040308cmov rcx, rax
    0040308fcall raiseRangeErrorI
    00403094
    00403094loc_403094:
    00403094mov rax, [rbp-24]
    00403098sar rax, 6
    0040309cand eax, 63
    0040309for eax, -128
    004030a2movsx edx, al
    004030a5mov rax, [rbp-8]
    004030a9mov rcx, rax
    004030accall addChar
    004030b1mov [rbp-8], rax
    004030b5mov [rbp-80], 211
    004030bdlea rax, [rip+0x2a314]
    004030c4mov [rbp-72], rax
    004030c8mov rax, [rbp-24]
    004030ccand eax, 63
    004030cfor al, 128
    004030d1cmp rax, 255
    004030d7jle 0x4030f5
    004030d9mov rax, [rbp-24]
    004030ddand eax, 63
    004030e0or al, 128
    004030e2mov r8l, 255
    004030e8mov edx, 0
    004030edmov rcx, rax
    004030f0call raiseRangeErrorI
    004030f5
    004030f5loc_4030f5:
    004030f5mov rax, [rbp-24]
    004030f9and eax, 63
    004030fcor eax, -128
    004030ffmovsx edx, al
    00403102mov rax, [rbp-8]
    00403106mov rcx, rax
    00403109call addChar
    0040310emov [rbp-8], rax
    00403112jmp 0x40318d
    00403114
    00403114loc_403114:
    00403114nop
    00403115mov [rbp-80], 214
    0040311dlea rax, [rip+0x2a2b4]
    00403124mov [rbp-72], rax
    00403128mov rax, [rbp-8]
    0040312cmov edx, -17
    00403131mov rcx, rax
    00403134call addChar
    00403139mov [rbp-8], rax
    0040313dmov [rbp-80], 215
    00403145lea rax, [rip+0x2a28c]
    0040314cmov [rbp-72], rax
    00403150mov rax, [rbp-8]
    00403154mov edx, -65
    00403159mov rcx, rax
    0040315ccall addChar
    00403161mov [rbp-8], rax
    00403165mov [rbp-80], 216
    0040316dlea rax, [rip+0x2a264]
    00403174mov [rbp-72], rax
    00403178mov rax, [rbp-8]
    0040317cmov edx, -67
    00403181mov rcx, rax
    00403184call addChar
    00403189mov [rbp-8], rax
    0040318d
    0040318dloc_40318d:
    0040318djmp 0x4029cb
    00403192
    00403192loc_403192:
    00403192nop
    00403193call popFrame
    00403198mov rax, [rbp-8]
    0040319cadd rsp, 160
    004031a3pop rbp
    004031a4ret
    004028d0
    004031a5
    004031a5dollar___systemZwidestrs_324:
    004031a5push rbp
    004031a6mov rbp, rsp
    004031a9sub rsp, 96
    004031admov [rbp+16], rcx
    004031b1lea rax, [rip+0x2a267]
    004031b8mov [rbp-56], rax
    004031bclea rax, [rip+0x2a215]
    004031c3mov [rbp-40], rax
    004031c7mov [rbp-48], 0
    004031cfmov [rbp-32], 0
    004031d5lea rax, [rbp-64]
    004031d9mov rcx, rax
    004031dccall nimFrame
    004031e1mov [rbp-8], 0
    004031e9mov [rbp-48], 219
    004031f1lea rax, [rip+0x2a1e0]
    004031f8mov [rbp-40], rax
    004031fcmov r8l, 65533
    00403202mov edx, 80
    00403207mov rcx, [rbp+16]
    0040320bcall dollar___systemZwidestrs_260
    00403210mov [rbp-8], rax
    00403214call popFrame
    00403219mov rax, [rbp-8]
    0040321dadd rsp, 96
    00403221pop rbp
    00403222ret
    004031a5
    00403223
    00403223Marker_tyRef.4HwedE75WPfqZSQ0Cq2OUg:
    00403223push rbp
    00403224mov rbp, rsp
    00403227sub rsp, 16
    0040322bmov [rbp+16], rcx
    0040322fmov [rbp+24], rdx
    00403233mov rax, [rbp+16]
    00403237mov [rbp-8], rax
    0040323bnop
    0040323cadd rsp, 16
    00403240pop rbp
    00403241ret
    00403223
    00403242
    00403242newWideCString__systemZwidestrs_231:
    00403242push rbp
    00403243sub rsp, 336
    0040324alea rbp, [rsp+128]
    00403252mov [rbp+224], rcx
    00403259mov [rbp+232], rdx
    00403260lea rax, [rip+0x2a1ba]
    00403267mov [rbp+88], rax
    0040326blea rax, [rip+0x2a166]
    00403272mov [rbp+104], rax
    00403276mov [rbp+96], 0
    0040327emov [rbp+112], 0
    00403284lea rax, [rbp+80]
    00403288mov rcx, rax
    0040328bcall nimFrame
    00403290mov [rbp+168], 0
    0040329bmov [rbp+96], 149
    004032a3lea rax, [rip+0x2a12e]
    004032aamov [rbp+104], rax
    004032aemov edx, 0
    004032b3mov rax, [rbp+232]
    004032baimul rax, rax, 2
    004032bejno 0x4032c5
    004032c0mov edx, 1
    004032c5
    004032c5loc_4032c5:
    004032c5mov rcx, rax
    004032c8lea rax, [rbp+144]
    004032cfmov [rax], rcx
    004032d2mov rax, rdx
    004032d5and eax, 1
    004032d8test al, al
    004032daje 0x4032e1
    004032dccall raiseOverflow
    004032e1
    004032e1loc_4032e1:
    004032e1mov rax, [rbp+144]
    004032e8mov edx, 0
    004032edadd rax, 2
    004032f1jno 0x4032f8
    004032f3mov edx, 1
    004032f8
    004032f8loc_4032f8:
    004032f8mov rcx, rax
    004032fblea rax, [rbp+136]
    00403302mov [rax], rcx
    00403305mov rax, rdx
    00403308and eax, 1
    0040330btest al, al
    0040330dje 0x403314
    0040330fcall raiseOverflow
    00403314
    00403314loc_403314:
    00403314mov rax, [rbp+136]
    0040331btest rax, rax
    0040331ejns 0x40333e
    00403320mov rax, [rbp+136]
    00403327mov r8, 0x7fffffffffffffff
    00403331mov edx, 0
    00403336mov rcx, rax
    00403339call raiseRangeErrorI
    0040333e
    0040333eloc_40333e:
    0040333emov rax, [rbp+136]
    00403345mov rdx, rax
    00403348lea rcx, [rip+0x32d31]
    0040334fcall newObj
    00403354mov [rbp+168], rax
    0040335bmov [rbp+96], 150
    00403363lea rax, [rip+0x2a06e]
    0040336amov [rbp+104], rax
    0040336emov [rbp+200], 0
    00403379mov [rbp+160], 0
    00403384mov [rbp+96], 139
    0040338clea rax, [rip+0x2a045]
    00403393mov [rbp+104], rax
    00403397mov [rbp+192], 0
    004033a2mov [rbp+184], 0
    004033admov [rbp+96], 141
    004033b5lea rax, [rip+0x2a01c]
    004033bcmov [rbp+104], rax
    004033c0
    004033c0loc_4033c0:
    004033c0mov rax, [rbp+192]
    004033c7cmp rax, [rbp+232]
    004033cejge 0x403f35
    004033d4mov [rbp+96], 142
    004033dclea rax, [rip+0x29ff5]
    004033e3mov [rbp+104], rax
    004033e7mov [rbp+96], 98
    004033eflea rax, [rip+0x29fe2]
    004033f6mov [rbp+104], rax
    004033famov rdx, [rbp+192]
    00403401mov rax, [rbp+224]
    00403408add rax, rdx
    0040340bmovzx eax, [rax]
    0040340etest al, al
    00403410js 0x40349a
    00403416mov [rbp+96], 99
    0040341elea rax, [rip+0x29fb3]
    00403425mov [rbp+104], rax
    00403429mov rdx, [rbp+192]
    00403430mov rax, [rbp+224]
    00403437add rax, rdx
    0040343amovzx eax, [rax]
    0040343dmovzx eax, al
    00403440mov [rbp+184], rax
    00403447mov [rbp+96], 100
    0040344flea rax, [rip+0x29f82]
    00403456mov [rbp+104], rax
    0040345amov edx, 0
    0040345fmov rax, [rbp+192]
    00403466add rax, 1
    0040346ajno 0x403471
    0040346cmov edx, 1
    00403471
    00403471loc_403471:
    00403471mov rcx, rax
    00403474lea rax, [rbp+64]
    00403478mov [rax], rcx
    0040347bmov rax, rdx
    0040347eand eax, 1
    00403481test al, al
    00403483je 0x40348a
    00403485call raiseOverflow
    0040348a
    0040348aloc_40348a:
    0040348amov rax, [rbp+64]
    0040348emov [rbp+192], rax
    00403495jmp 0x403c14
    0040349a
    0040349aloc_40349a:
    0040349anop
    0040349bmov [rbp+96], 101
    004034a3lea rax, [rip+0x29f2e]
    004034aamov [rbp+104], rax
    004034aemov rdx, [rbp+192]
    004034b5mov rax, [rbp+224]
    004034bcadd rax, rdx
    004034bfmovzx eax, [rax]
    004034c2shr al, 5
    004034c5cmp al, 6
    004034c7jne 0x403671
    004034cdmov [rbp+96], 103
    004034d5lea rax, [rip+0x29efc]
    004034dcmov [rbp+104], rax
    004034e0mov edx, 0
    004034e5mov rax, [rbp+232]
    004034ecsub rax, 2
    004034f0jno 0x4034f7
    004034f2mov edx, 1
    004034f7
    004034f7loc_4034f7:
    004034f7mov rcx, rax
    004034falea rax, [rbp+56]
    004034femov [rax], rcx
    00403501mov rax, rdx
    00403504and eax, 1
    00403507test al, al
    00403509je 0x403510
    0040350bcall raiseOverflow
    00403510
    00403510loc_403510:
    00403510mov rax, [rbp+56]
    00403514cmp [rbp+192], rax
    0040351bjg 0x4035ff
    00403521mov [rbp+96], 104
    00403529lea rax, [rip+0x29ea8]
    00403530mov [rbp+104], rax
    00403534mov edx, 0
    00403539mov rax, [rbp+192]
    00403540add rax, 1
    00403544jno 0x40354b
    00403546mov edx, 1
    0040354b
    0040354bloc_40354b:
    0040354bmov rcx, rax
    0040354elea rax, [rbp+48]
    00403552mov [rax], rcx
    00403555mov rax, rdx
    00403558and eax, 1
    0040355btest al, al
    0040355dje 0x403564
    0040355fcall raiseOverflow
    00403564
    00403564loc_403564:
    00403564mov rdx, [rbp+192]
    0040356bmov rax, [rbp+224]
    00403572add rax, rdx
    00403575movzx eax, [rax]
    00403578movzx eax, al
    0040357bshl rax, 6
    0040357fand eax, 1984
    00403584mov rdx, rax
    00403587mov rax, [rbp+48]
    0040358bmov rcx, rax
    0040358emov rax, [rbp+224]
    00403595add rax, rcx
    00403598movzx eax, [rax]
    0040359bmovzx eax, al
    0040359eand eax, 63
    004035a1or rax, rdx
    004035a4mov [rbp+184], rax
    004035abmov [rbp+96], 105
    004035b3lea rax, [rip+0x29e1e]
    004035bamov [rbp+104], rax
    004035bemov edx, 0
    004035c3mov rax, [rbp+192]
    004035caadd rax, 2
    004035cejno 0x4035d5
    004035d0mov edx, 1
    004035d5
    004035d5loc_4035d5:
    004035d5mov rcx, rax
    004035d8lea rax, [rbp+40]
    004035dcmov [rax], rcx
    004035dfmov rax, rdx
    004035e2and eax, 1
    004035e5test al, al
    004035e7je 0x4035ee
    004035e9call raiseOverflow
    004035ee
    004035eeloc_4035ee:
    004035eemov rax, [rbp+40]
    004035f2mov [rbp+192], rax
    004035f9nop
    004035fajmp 0x403c14
    004035ff
    004035ffloc_4035ff:
    004035ffnop
    00403600mov [rbp+96], 107
    00403608lea rax, [rip+0x29dc9]
    0040360fmov [rbp+104], rax
    00403613mov [rbp+184], 65533
    0040361emov [rbp+96], 108
    00403626lea rax, [rip+0x29dab]
    0040362dmov [rbp+104], rax
    00403631mov edx, 0
    00403636mov rax, [rbp+192]
    0040363dadd rax, 1
    00403641jno 0x403648
    00403643mov edx, 1
    00403648
    00403648loc_403648:
    00403648mov rcx, rax
    0040364blea rax, [rbp+32]
    0040364fmov [rax], rcx
    00403652mov rax, rdx
    00403655and eax, 1
    00403658test al, al
    0040365aje 0x403661
    0040365ccall raiseOverflow
    00403661
    00403661loc_403661:
    00403661mov rax, [rbp+32]
    00403665mov [rbp+192], rax
    0040366cjmp 0x403c14
    00403671
    00403671loc_403671:
    00403671nop
    00403672mov [rbp+96], 109
    0040367alea rax, [rip+0x29d57]
    00403681mov [rbp+104], rax
    00403685mov rdx, [rbp+192]
    0040368cmov rax, [rbp+224]
    00403693add rax, rdx
    00403696movzx eax, [rax]
    00403699shr al, 4
    0040369ccmp al, 14
    0040369ejne 0x4038ce
    004036a4mov [rbp+96], 110
    004036aclea rax, [rip+0x29d25]
    004036b3mov [rbp+104], rax
    004036b7mov edx, 0
    004036bcmov rax, [rbp+232]
    004036c3sub rax, 3
    004036c7jno 0x4036ce
    004036c9mov edx, 1
    004036ce
    004036celoc_4036ce:
    004036cemov rcx, rax
    004036d1lea rax, [rbp+24]
    004036d5mov [rax], rcx
    004036d8mov rax, rdx
    004036dband eax, 1
    004036detest al, al
    004036e0je 0x4036e7
    004036e2call raiseOverflow
    004036e7
    004036e7loc_4036e7:
    004036e7mov rax, [rbp+24]
    004036ebcmp [rbp+192], rax
    004036f2jg 0x40385c
    004036f8mov [rbp+96], 114
    00403700lea rax, [rip+0x29cd1]
    00403707mov [rbp+104], rax
    0040370bmov [rbp+96], 113
    00403713lea rax, [rip+0x29cbe]
    0040371amov [rbp+104], rax
    0040371emov [rbp+96], 114
    00403726lea rax, [rip+0x29cab]
    0040372dmov [rbp+104], rax
    00403731mov edx, 0
    00403736mov rax, [rbp+192]
    0040373dadd rax, 1
    00403741jno 0x403748
    00403743mov edx, 1
    00403748
    00403748loc_403748:
    00403748mov rcx, rax
    0040374blea rax, [rbp+16]
    0040374fmov [rax], rcx
    00403752mov rax, rdx
    00403755and eax, 1
    00403758test al, al
    0040375aje 0x403761
    0040375ccall raiseOverflow
    00403761
    00403761loc_403761:
    00403761mov [rbp+96], 115
    00403769lea rax, [rip+0x29c68]
    00403770mov [rbp+104], rax
    00403774mov edx, 0
    00403779mov rax, [rbp+192]
    00403780add rax, 2
    00403784jno 0x40378b
    00403786mov edx, 1
    0040378b
    0040378bloc_40378b:
    0040378bmov rcx, rax
    0040378elea rax, [rbp+8]
    00403792mov [rax], rcx
    00403795mov rax, rdx
    00403798and eax, 1
    0040379btest al, al
    0040379dje 0x4037a4
    0040379fcall raiseOverflow
    004037a4
    004037a4loc_4037a4:
    004037a4mov rdx, [rbp+192]
    004037abmov rax, [rbp+224]
    004037b2add rax, rdx
    004037b5movzx eax, [rax]
    004037b8movzx eax, al
    004037bbshl rax, 12
    004037bfmovzx edx, ax
    004037c2mov rax, [rbp+16]
    004037c6mov rcx, rax
    004037c9mov rax, [rbp+224]
    004037d0add rax, rcx
    004037d3movzx eax, [rax]
    004037d6movzx eax, al
    004037d9shl rax, 6
    004037ddand eax, 4032
    004037e2or rdx, rax
    004037e5mov rax, [rbp+8]
    004037e9mov rcx, rax
    004037ecmov rax, [rbp+224]
    004037f3add rax, rcx
    004037f6movzx eax, [rax]
    004037f9movzx eax, al
    004037fcand eax, 63
    004037ffor rax, rdx
    00403802mov [rbp+184], rax
    00403809mov [rbp+96], 116
    00403811lea rax, [rip+0x29bc0]
    00403818mov [rbp+104], rax
    0040381cmov edx, 0
    00403821mov rax, [rbp+192]
    00403828add rax, 3
    0040382cjno 0x403833
    0040382emov edx, 1
    00403833
    00403833loc_403833:
    00403833mov rcx, rax
    00403836mov rax, rbp
    00403839mov [rax], rcx
    0040383cmov rax, rdx
    0040383fand eax, 1
    00403842test al, al
    00403844je 0x40384b
    00403846call raiseOverflow
    0040384b
    0040384bloc_40384b:
    0040384bmov rax, [rbp]
    0040384fmov [rbp+192], rax
    00403856nop
    00403857jmp 0x403c14
    0040385c
    0040385cloc_40385c:
    0040385cnop
    0040385dmov [rbp+96], 118
    00403865lea rax, [rip+0x29b6c]
    0040386cmov [rbp+104], rax
    00403870mov [rbp+184], 65533
    0040387bmov [rbp+96], 119
    00403883lea rax, [rip+0x29b4e]
    0040388amov [rbp+104], rax
    0040388emov edx, 0
    00403893mov rax, [rbp+192]
    0040389aadd rax, 1
    0040389ejno 0x4038a5
    004038a0mov edx, 1
    004038a5
    004038a5loc_4038a5:
    004038a5mov rcx, rax
    004038a8lea rax, [rbp-8]
    004038acmov [rax], rcx
    004038afmov rax, rdx
    004038b2and eax, 1
    004038b5test al, al
    004038b7je 0x4038be
    004038b9call raiseOverflow
    004038be
    004038beloc_4038be:
    004038bemov rax, [rbp-8]
    004038c2mov [rbp+192], rax
    004038c9jmp 0x403c14
    004038ce
    004038celoc_4038ce:
    004038cenop
    004038cfmov [rbp+96], 120
    004038d7lea rax, [rip+0x29afa]
    004038demov [rbp+104], rax
    004038e2mov rdx, [rbp+192]
    004038e9mov rax, [rbp+224]
    004038f0add rax, rdx
    004038f3movzx eax, [rax]
    004038f6shr al, 3
    004038f9cmp al, 30
    004038fbjne 0x403ba7
    00403901mov [rbp+96], 121
    00403909lea rax, [rip+0x29ac8]
    00403910mov [rbp+104], rax
    00403914mov edx, 0
    00403919mov rax, [rbp+232]
    00403920sub rax, 4
    00403924jno 0x40392b
    00403926mov edx, 1
    0040392b
    0040392bloc_40392b:
    0040392bmov rcx, rax
    0040392elea rax, [rbp-16]
    00403932mov [rax], rcx
    00403935mov rax, rdx
    00403938and eax, 1
    0040393btest al, al
    0040393dje 0x403944
    0040393fcall raiseOverflow
    00403944
    00403944loc_403944:
    00403944mov rax, [rbp-16]
    00403948cmp [rbp+192], rax
    0040394fjg 0x403b38
    00403955mov [rbp+96], 127
    0040395dlea rax, [rip+0x29a74]
    00403964mov [rbp+104], rax
    00403968mov [rbp+96], 126
    00403970lea rax, [rip+0x29a61]
    00403977mov [rbp+104], rax
    0040397bmov [rbp+96], 125
    00403983lea rax, [rip+0x29a4e]
    0040398amov [rbp+104], rax
    0040398emov [rbp+96], 126
    00403996lea rax, [rip+0x29a3b]
    0040399dmov [rbp+104], rax
    004039a1mov edx, 0
    004039a6mov rax, [rbp+192]
    004039adadd rax, 1
    004039b1jno 0x4039b8
    004039b3mov edx, 1
    004039b8
    004039b8loc_4039b8:
    004039b8mov rcx, rax
    004039bblea rax, [rbp-24]
    004039bfmov [rax], rcx
    004039c2mov rax, rdx
    004039c5and eax, 1
    004039c8test al, al
    004039caje 0x4039d1
    004039cccall raiseOverflow
    004039d1
    004039d1loc_4039d1:
    004039d1mov [rbp+96], 127
    004039d9lea rax, [rip+0x299f8]
    004039e0mov [rbp+104], rax
    004039e4mov edx, 0
    004039e9mov rax, [rbp+192]
    004039f0add rax, 2
    004039f4jno 0x4039fb
    004039f6mov edx, 1
    004039fb
    004039fbloc_4039fb:
    004039fbmov rcx, rax
    004039felea rax, [rbp-32]
    00403a02mov [rax], rcx
    00403a05mov rax, rdx
    00403a08and eax, 1
    00403a0btest al, al
    00403a0dje 0x403a14
    00403a0fcall raiseOverflow
    00403a14
    00403a14loc_403a14:
    00403a14mov [rbp+96], 128
    00403a1clea rax, [rip+0x299b5]
    00403a23mov [rbp+104], rax
    00403a27mov edx, 0
    00403a2cmov rax, [rbp+192]
    00403a33add rax, 3
    00403a37jno 0x403a3e
    00403a39mov edx, 1
    00403a3e
    00403a3eloc_403a3e:
    00403a3emov rcx, rax
    00403a41lea rax, [rbp-40]
    00403a45mov [rax], rcx
    00403a48mov rax, rdx
    00403a4band eax, 1
    00403a4etest al, al
    00403a50je 0x403a57
    00403a52call raiseOverflow
    00403a57
    00403a57loc_403a57:
    00403a57mov rdx, [rbp+192]
    00403a5emov rax, [rbp+224]
    00403a65add rax, rdx
    00403a68movzx eax, [rax]
    00403a6bmovzx eax, al
    00403a6eshl rax, 18
    00403a72and eax, 0x1c0000
    00403a77mov rdx, rax
    00403a7amov rax, [rbp-24]
    00403a7emov rcx, rax
    00403a81mov rax, [rbp+224]
    00403a88add rax, rcx
    00403a8bmovzx eax, [rax]
    00403a8emovzx eax, al
    00403a91shl rax, 12
    00403a95and eax, 0x3f000
    00403a9aor rdx, rax
    00403a9dmov rax, [rbp-32]
    00403aa1mov rcx, rax
    00403aa4mov rax, [rbp+224]
    00403aabadd rax, rcx
    00403aaemovzx eax, [rax]
    00403ab1movzx eax, al
    00403ab4shl rax, 6
    00403ab8and eax, 4032
    00403abdor rdx, rax
    00403ac0mov rax, [rbp-40]
    00403ac4mov rcx, rax
    00403ac7mov rax, [rbp+224]
    00403aceadd rax, rcx
    00403ad1movzx eax, [rax]
    00403ad4movzx eax, al
    00403ad7and eax, 63
    00403adaor rax, rdx
    00403addmov [rbp+184], rax
    00403ae4mov [rbp+96], 129
    00403aeclea rax, [rip+0x298e5]
    00403af3mov [rbp+104], rax
    00403af7mov edx, 0
    00403afcmov rax, [rbp+192]
    00403b03add rax, 4
    00403b07jno 0x403b0e
    00403b09mov edx, 1
    00403b0e
    00403b0eloc_403b0e:
    00403b0emov rcx, rax
    00403b11lea rax, [rbp-48]
    00403b15mov [rax], rcx
    00403b18mov rax, rdx
    00403b1band eax, 1
    00403b1etest al, al
    00403b20je 0x403b27
    00403b22call raiseOverflow
    00403b27
    00403b27loc_403b27:
    00403b27mov rax, [rbp-48]
    00403b2bmov [rbp+192], rax
    00403b32nop
    00403b33jmp 0x403c14
    00403b38
    00403b38loc_403b38:
    00403b38nop
    00403b39mov [rbp+96], 131
    00403b41lea rax, [rip+0x29890]
    00403b48mov [rbp+104], rax
    00403b4cmov [rbp+184], 65533
    00403b57mov [rbp+96], 132
    00403b5flea rax, [rip+0x29872]
    00403b66mov [rbp+104], rax
    00403b6amov edx, 0
    00403b6fmov rax, [rbp+192]
    00403b76add rax, 1
    00403b7ajno 0x403b81
    00403b7cmov edx, 1
    00403b81
    00403b81loc_403b81:
    00403b81mov rcx, rax
    00403b84lea rax, [rbp-56]
    00403b88mov [rax], rcx
    00403b8bmov rax, rdx
    00403b8eand eax, 1
    00403b91test al, al
    00403b93je 0x403b9a
    00403b95call raiseOverflow
    00403b9a
    00403b9aloc_403b9a:
    00403b9amov rax, [rbp-56]
    00403b9emov [rbp+192], rax
    00403ba5jmp 0x403c14
    00403ba7
    00403ba7loc_403ba7:
    00403ba7nop
    00403ba8mov [rbp+96], 134
    00403bb0lea rax, [rip+0x29821]
    00403bb7mov [rbp+104], rax
    00403bbbmov [rbp+184], 65533
    00403bc6mov [rbp+96], 135
    00403bcelea rax, [rip+0x29803]
    00403bd5mov [rbp+104], rax
    00403bd9mov edx, 0
    00403bdemov rax, [rbp+192]
    00403be5add rax, 1
    00403be9jno 0x403bf0
    00403bebmov edx, 1
    00403bf0
    00403bf0loc_403bf0:
    00403bf0mov rcx, rax
    00403bf3lea rax, [rbp-64]
    00403bf7mov [rax], rcx
    00403bfamov rax, rdx
    00403bfdand eax, 1
    00403c00test al, al
    00403c02je 0x403c09
    00403c04call raiseOverflow
    00403c09
    00403c09loc_403c09:
    00403c09mov rax, [rbp-64]
    00403c0dmov [rbp+192], rax
    00403c14
    00403c14loc_403c14:
    00403c14mov [rbp+96], 151
    00403c1clea rax, [rip+0x297b5]
    00403c23mov [rbp+104], rax
    00403c27mov rax, [rbp+184]
    00403c2emov [rbp+160], rax
    00403c35mov [rbp+96], 153
    00403c3dlea rax, [rip+0x29794]
    00403c44mov [rbp+104], rax
    00403c48cmp [rbp+160], 65535
    00403c53jg 0x403d25
    00403c59mov [rbp+96], 154
    00403c61lea rax, [rip+0x29770]
    00403c68mov [rbp+104], rax
    00403c6cmov [rbp+183], 0
    00403c73cmp [rbp+160], 55295
    00403c7esetg al
    00403c81mov [rbp+183], al
    00403c87movzx eax, [rbp+183]
    00403c8exor eax, 1
    00403c91test al, al
    00403c93jne 0x403cab
    00403c95cmp [rbp+160], 57343
    00403ca0setle al
    00403ca3mov [rbp+183], al
    00403ca9jmp 0x403cac
    00403cab
    00403cabloc_403cab:
    00403cabnop
    00403cac
    00403cacloc_403cac:
    00403cacmovzx eax, [rbp+183]
    00403cb3xor eax, 1
    00403cb6test al, al
    00403cb8jne 0x403ced
    00403cbamov [rbp+96], 155
    00403cc2lea rax, [rip+0x2970f]
    00403cc9mov [rbp+104], rax
    00403ccdmov rax, [rbp+200]
    00403cd4lea rdx, [rax+rax]
    00403cd8mov rax, [rbp+168]
    00403cdfadd rax, rdx
    00403ce2mov [rax], -3
    00403ce7nop
    00403ce8jmp 0x403ee2
    00403ced
    00403cedloc_403ced:
    00403cednop
    00403ceemov [rbp+96], 157
    00403cf6lea rax, [rip+0x296db]
    00403cfdmov [rbp+104], rax
    00403d01mov rax, [rbp+200]
    00403d08lea rdx, [rax+rax]
    00403d0cmov rax, [rbp+168]
    00403d13add rax, rdx
    00403d16mov rdx, [rbp+160]
    00403d1dmov [rax], dx
    00403d20jmp 0x403ee2
    00403d25
    00403d25loc_403d25:
    00403d25nop
    00403d26mov [rbp+96], 158
    00403d2elea rax, [rip+0x296a3]
    00403d35mov [rbp+104], rax
    00403d39cmp [rbp+160], 0x10ffff
    00403d44jle 0x403d78
    00403d46mov [rbp+96], 159
    00403d4elea rax, [rip+0x29683]
    00403d55mov [rbp+104], rax
    00403d59mov rax, [rbp+200]
    00403d60lea rdx, [rax+rax]
    00403d64mov rax, [rbp+168]
    00403d6badd rax, rdx
    00403d6emov [rax], -3
    00403d73jmp 0x403ee2
    00403d78
    00403d78loc_403d78:
    00403d78nop
    00403d79mov [rbp+96], 161
    00403d81lea rax, [rip+0x29650]
    00403d88mov [rbp+104], rax
    00403d8cmov edx, 0
    00403d91mov rax, [rbp+160]
    00403d98sub rax, 0x10000
    00403d9ejno 0x403da5
    00403da0mov edx, 1
    00403da5
    00403da5loc_403da5:
    00403da5mov rcx, rax
    00403da8lea rax, [rbp-72]
    00403dacmov [rax], rcx
    00403dafmov rax, rdx
    00403db2and eax, 1
    00403db5test al, al
    00403db7je 0x403dbe
    00403db9call raiseOverflow
    00403dbe
    00403dbeloc_403dbe:
    00403dbemov rax, [rbp-72]
    00403dc2mov [rbp+152], rax
    00403dc9mov [rbp+96], 162
    00403dd1lea rax, [rip+0x29600]
    00403dd8mov [rbp+104], rax
    00403ddcmov rax, [rbp+152]
    00403de3sar rax, 10
    00403de7mov edx, 0
    00403decadd rax, 55296
    00403df2jno 0x403df9
    00403df4mov edx, 1
    00403df9
    00403df9loc_403df9:
    00403df9mov rcx, rax
    00403dfclea rax, [rbp-80]
    00403e00mov [rax], rcx
    00403e03mov rax, rdx
    00403e06and eax, 1
    00403e09test al, al
    00403e0bje 0x403e12
    00403e0dcall raiseOverflow
    00403e12
    00403e12loc_403e12:
    00403e12mov rdx, [rbp-80]
    00403e16mov rax, [rbp+200]
    00403e1dlea rcx, [rax+rax]
    00403e21mov rax, [rbp+168]
    00403e28add rax, rcx
    00403e2bmov [rax], dx
    00403e2emov [rbp+96], 163
    00403e36lea rax, [rip+0x2959b]
    00403e3dmov [rbp+104], rax
    00403e41mov edx, 0
    00403e46mov rax, [rbp+200]
    00403e4dadd rax, 1
    00403e51jno 0x403e58
    00403e53mov edx, 1
    00403e58
    00403e58loc_403e58:
    00403e58mov rcx, rax
    00403e5blea rax, [rbp-88]
    00403e5fmov [rax], rcx
    00403e62mov rax, rdx
    00403e65and eax, 1
    00403e68test al, al
    00403e6aje 0x403e71
    00403e6ccall raiseOverflow
    00403e71
    00403e71loc_403e71:
    00403e71mov rax, [rbp-88]
    00403e75mov [rbp+200], rax
    00403e7cmov [rbp+96], 164
    00403e84lea rax, [rip+0x2954d]
    00403e8bmov [rbp+104], rax
    00403e8fmov rax, [rbp+152]
    00403e96and eax, 1023
    00403e9bmov edx, 0
    00403ea0add rax, 56320
    00403ea6jno 0x403ead
    00403ea8mov edx, 1
    00403ead
    00403eadloc_403ead:
    00403eadmov rcx, rax
    00403eb0lea rax, [rbp-96]
    00403eb4mov [rax], rcx
    00403eb7mov rax, rdx
    00403ebaand eax, 1
    00403ebdtest al, al
    00403ebfje 0x403ec6
    00403ec1call raiseOverflow
    00403ec6
    00403ec6loc_403ec6:
    00403ec6mov rdx, [rbp-96]
    00403ecamov rax, [rbp+200]
    00403ed1lea rcx, [rax+rax]
    00403ed5mov rax, [rbp+168]
    00403edcadd rax, rcx
    00403edfmov [rax], dx
    00403ee2
    00403ee2loc_403ee2:
    00403ee2mov [rbp+96], 151
    00403eealea rax, [rip+0x294e7]
    00403ef1mov [rbp+104], rax
    00403ef5mov edx, 0
    00403efamov rax, [rbp+200]
    00403f01add rax, 1
    00403f05jno 0x403f0c
    00403f07mov edx, 1
    00403f0c
    00403f0cloc_403f0c:
    00403f0cmov rcx, rax
    00403f0flea rax, [rbp+72]
    00403f13mov [rax], rcx
    00403f16mov rax, rdx
    00403f19and eax, 1
    00403f1ctest al, al
    00403f1eje 0x403f25
    00403f20call raiseOverflow
    00403f25
    00403f25loc_403f25:
    00403f25mov rax, [rbp+72]
    00403f29mov [rbp+200], rax
    00403f30jmp 0x4033c0
    00403f35
    00403f35loc_403f35:
    00403f35nop
    00403f36mov [rbp+96], 166
    00403f3elea rax, [rip+0x29493]
    00403f45mov [rbp+104], rax
    00403f49mov rax, [rbp+200]
    00403f50lea rdx, [rax+rax]
    00403f54mov rax, [rbp+168]
    00403f5badd rax, rdx
    00403f5emov [rax], 0
    00403f63call popFrame
    00403f68mov rax, [rbp+168]
    00403f6fadd rsp, 336
    00403f76pop rbp
    00403f77ret
    00403242
    00403f78
    00403f78atmdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot8atslibatssystematswidestrsdotnim_DatInit000:
    00403f78push rbp
    00403f79mov rbp, rsp
    00403f7cmov [rip+0x320b9], 2
    00403f87mov [rip+0x320b6], 2
    00403f92mov [rip+0x320b7], 49
    00403f99mov rax, [rip+0x2cf40]
    00403fa0mov [rip+0x320b1], rax
    00403fa7mov [rip+0x320a3], 3
    00403faemov [rip+0x320c7], 8
    00403fb9mov [rip+0x320c4], 8
    00403fc4mov [rip+0x320c5], 22
    00403fcblea rax, [rip+0x3206e]
    00403fd2mov [rip+0x320bf], rax
    00403fd9lea rax, [rip-3517]
    00403fe0mov [rip+0x320c9], rax
    00403fe7nop
    00403fe8pop rbp
    00403fe9ret
    00403f78
    00403fea
    00403fea // align 0x10
    00403ff0
    00403ff0fprintf:
    00403ff0push rbp
    00403ff1mov rbp, rsp
    00403ff4sub rsp, 48
    00403ff8mov [rbp+16], rcx
    00403ffcmov [rbp+24], rdx
    00404000mov [rbp+32], r8
    00404004mov [rbp+40], r9
    00404008lea rax, [rbp+32]
    0040400cmov [rbp-16], rax
    00404010mov rdx, [rbp-16]
    00404014mov rax, [rbp+24]
    00404018mov r8, rdx
    0040401bmov rdx, rax
    0040401emov rcx, [rbp+16]
    00404022call __mingw_vfprintf
    00404027mov [rbp-4], eax
    0040402amov eax, [rbp-4]
    0040402dadd rsp, 48
    00404031pop rbp
    00404032ret
    00403ff0
    00404033
    00404033nimToCStringConv:
    00404033push rbp
    00404034mov rbp, rsp
    00404037sub rsp, 16
    0040403bmov [rbp+16], rcx
    0040403fmov [rbp-8], 0
    00404047mov [rbp-9], 0
    0040404bcmp [rbp+16], 0
    00404050sete al
    00404053mov [rbp-9], al
    00404056cmp [rbp-9], 0
    0040405ajne 0x40406e
    0040405cmov rax, [rbp+16]
    00404060mov rax, [rax]
    00404063test rax, rax
    00404066sete al
    00404069mov [rbp-9], al
    0040406cjmp 0x40406f
    0040406e
    0040406eloc_40406e:
    0040406enop
    0040406f
    0040406floc_40406f:
    0040406fmovzx eax, [rbp-9]
    00404073xor eax, 1
    00404076test al, al
    00404078jne 0x404087
    0040407alea rax, [rip+0x2942f]
    00404081mov [rbp-8], rax
    00404085jmp 0x404094
    00404087
    00404087loc_404087:
    00404087nop
    00404088mov rax, [rbp+16]
    0040408cadd rax, 16
    00404090mov [rbp-8], rax
    00404094
    00404094loc_404094:
    00404094mov rax, [rbp-8]
    00404098add rsp, 16
    0040409cpop rbp
    0040409dret
    00404033
    0040409e
    0040409enimFrame:
    0040409epush rbp
    0040409fmov rbp, rsp
    004040a2sub rsp, 32
    004040a6mov [rbp+16], rcx
    004040aamov rax, [rip+0x2d0bf]
    004040b1mov rax, [rax]
    004040b4test rax, rax
    004040b7jne 0x4040c5
    004040b9mov rax, [rbp+16]
    004040bdmov [rax+34], 0
    004040c3jmp 0x4040e1
    004040c5
    004040c5loc_4040c5:
    004040c5nop
    004040c6mov rax, [rip+0x2d0a3]
    004040cdmov rax, [rax]
    004040d0movzx eax, [rax+34]
    004040d4add eax, 1
    004040d7mov edx, eax
    004040d9mov rax, [rbp+16]
    004040ddmov [rax+34], dx
    004040e1
    004040e1loc_4040e1:
    004040e1mov rax, [rip+0x2d088]
    004040e8mov rdx, [rax]
    004040ebmov rax, [rbp+16]
    004040efmov [rax], rdx
    004040f2mov rax, [rip+0x2d077]
    004040f9mov rdx, [rbp+16]
    004040fdmov [rax], rdx
    00404100mov rax, [rbp+16]
    00404104movzx eax, [rax+34]
    00404108cmp ax, 2000
    0040410cjne 0x404115
    0040410ecall callDepthLimitReached__system_2999
    00404113jmp 0x404116
    00404115
    00404115loc_404115:
    00404115nop
    00404116
    00404116loc_404116:
    00404116nop
    00404117add rsp, 32
    0040411bpop rbp
    0040411cret
    0040409e
    0040411d
    0040411dpopFrame:
    0040411dpush rbp
    0040411emov rbp, rsp
    00404121mov rax, [rip+0x2d048]
    00404128mov rax, [rax]
    0040412bmov rdx, [rax]
    0040412emov rax, [rip+0x2d03b]
    00404135mov [rax], rdx
    00404138nop
    00404139pop rbp
    0040413aret
    0040411d
    0040413b
    0040413bminuspercent___system_716:
    0040413bpush rbp
    0040413cmov rbp, rsp
    0040413fsub rsp, 96
    00404143mov [rbp+16], rcx
    00404147mov [rbp+24], rdx
    0040414blea rax, [rip+0x2935f]
    00404152mov [rbp-56], rax
    00404156lea rax, [rip+0x2935b]
    0040415dmov [rbp-40], rax
    00404161mov [rbp-48], 0
    00404169mov [rbp-32], 0
    0040416flea rax, [rbp-64]
    00404173mov rcx, rax
    00404176call nimFrame
    0040417bmov [rbp-8], 0
    00404183mov [rbp-48], 414
    0040418blea rax, [rip+0x29326]
    00404192mov [rbp-40], rax
    00404196mov [rbp-48], 418
    0040419elea rax, [rip+0x29313]
    004041a5mov [rbp-40], rax
    004041a9mov rax, [rbp+16]
    004041admov rdx, [rbp+24]
    004041b1sub rax, rdx
    004041b4mov [rbp-8], rax
    004041b8call popFrame
    004041bdmov rax, [rbp-8]
    004041c1add rsp, 96
    004041c5pop rbp
    004041c6ret
    0040413b
    004041c7
    004041c7ltpercent___system_1005:
    004041c7push rbp
    004041c8mov rbp, rsp
    004041cbsub rsp, 96
    004041cfmov [rbp+16], rcx
    004041d3mov [rbp+24], rdx
    004041d7lea rax, [rip+0x29324]
    004041demov [rbp-56], rax
    004041e2lea rax, [rip+0x2931f]
    004041e9mov [rbp-40], rax
    004041edmov [rbp-48], 0
    004041f5mov [rbp-32], 0
    004041fblea rax, [rbp-64]
    004041ffmov rcx, rax
    00404202call nimFrame
    00404207mov [rbp-1], 0
    0040420bmov [rbp-48], 186
    00404213lea rax, [rip+0x292ee]
    0040421amov [rbp-40], rax
    0040421emov [rbp-48], 188
    00404226lea rax, [rip+0x292db]
    0040422dmov [rbp-40], rax
    00404231mov rdx, [rbp+16]
    00404235mov rax, [rbp+24]
    00404239cmp rdx, rax
    0040423csetb al
    0040423fmov [rbp-1], al
    00404242call popFrame
    00404247movzx eax, [rbp-1]
    0040424badd rsp, 96
    0040424fpop rbp
    00404250ret
    004041c7
    00404251
    00404251rtlAddZCT__system_5397:
    00404251push rbp
    00404252mov rbp, rsp
    00404255sub rsp, 80
    00404259mov [rbp+16], rcx
    0040425dlea rax, [rip+0x292ee]
    00404264mov [rbp-40], rax
    00404268lea rax, [rip+0x292f1]
    0040426fmov [rbp-24], rax
    00404273mov [rbp-32], 0
    0040427bmov [rbp-16], 0
    00404281lea rax, [rbp-48]
    00404285mov rcx, rax
    00404288call nimFrame
    0040428dmov [rbp-32], 243
    00404295lea rax, [rip+0x292c4]
    0040429cmov [rbp-24], rax
    004042a0mov rdx, [rbp+16]
    004042a4mov rax, [rip+0x2ced5]
    004042ablea rcx, [rax+24]
    004042afcall addZCT__system_5348
    004042b4call popFrame
    004042b9nop
    004042baadd rsp, 80
    004042bepop rbp
    004042bfret
    00404251
    004042c0
    004042c0decRef__system_5399:
    004042c0push rbp
    004042c1mov rbp, rsp
    004042c4sub rsp, 96
    004042c8mov [rbp+16], rcx
    004042cclea rax, [rip+0x292ce]
    004042d3mov [rbp-56], rax
    004042d7lea rax, [rip+0x29282]
    004042demov [rbp-40], rax
    004042e2mov [rbp-48], 0
    004042eamov [rbp-32], 0
    004042f0lea rax, [rbp-64]
    004042f4mov rcx, rax
    004042f7call nimFrame
    004042fcmov [rbp-48], 248
    00404304lea rax, [rip+0x29255]
    0040430bmov [rbp-40], rax
    0040430fmov rax, [rbp+16]
    00404313mov rax, [rax]
    00404316mov edx, 8
    0040431bmov rcx, rax
    0040431ecall minuspercent___system_716
    00404323mov rdx, [rbp+16]
    00404327mov [rdx], rax
    0040432amov [rbp-48], 249
    00404332lea rax, [rip+0x29227]
    00404339mov [rbp-40], rax
    0040433dmov [rbp-1], 0
    00404341mov rax, [rbp+16]
    00404345mov rax, [rax]
    00404348mov edx, 8
    0040434dmov rcx, rax
    00404350call ltpercent___system_1005
    00404355mov [rbp-1], al
    00404358movzx eax, [rbp-1]
    0040435cxor eax, 1
    0040435ftest al, al
    00404361jne 0x404381
    00404363mov [rbp-48], 250
    0040436blea rax, [rip+0x291ee]
    00404372mov [rbp-40], rax
    00404376mov rcx, [rbp+16]
    0040437acall rtlAddZCT__system_5397
    0040437fjmp 0x404382
    00404381
    00404381loc_404381:
    00404381nop
    00404382
    00404382loc_404382:
    00404382call popFrame
    00404387nop
    00404388add rsp, 96
    0040438cpop rbp
    0040438dret
    004042c0
    0040438e
    0040438eusrToCell__system_5354:
    0040438epush rbp
    0040438fmov rbp, rsp
    00404392sub rsp, 96
    00404396mov [rbp+16], rcx
    0040439alea rax, [rip+0x29207]
    004043a1mov [rbp-56], rax
    004043a5lea rax, [rip+0x291b4]
    004043acmov [rbp-40], rax
    004043b0mov [rbp-48], 0
    004043b8mov [rbp-32], 0
    004043belea rax, [rbp-64]
    004043c2mov rcx, rax
    004043c5call nimFrame
    004043camov [rbp-8], 0
    004043d2mov [rbp-48], 177
    004043dalea rax, [rip+0x2917f]
    004043e1mov [rbp-40], rax
    004043e5mov [rbp-16], 0
    004043edmov rax, [rbp+16]
    004043f1mov edx, 16
    004043f6mov rcx, rax
    004043f9call minuspercent___system_716
    004043femov [rbp-16], rax
    00404402mov rax, [rbp-16]
    00404406mov [rbp-8], rax
    0040440acall popFrame
    0040440fmov rax, [rbp-8]
    00404413add rsp, 96
    00404417pop rbp
    00404418ret
    0040438e
    00404419
    00404419nimGCunrefNoCycle:
    00404419push rbp
    0040441amov rbp, rsp
    0040441dsub rsp, 96
    00404421mov [rbp+16], rcx
    00404425lea rax, [rip+0x29186]
    0040442cmov [rbp-56], rax
    00404430lea rax, [rip+0x29129]
    00404437mov [rbp-40], rax
    0040443bmov [rbp-48], 0
    00404443mov [rbp-32], 0
    00404449lea rax, [rbp-64]
    0040444dmov rcx, rax
    00404450call nimFrame
    00404455mov [rbp-48], 276
    0040445dlea rax, [rip+0x290fc]
    00404464mov [rbp-40], rax
    00404468mov [rbp-8], 0
    00404470mov rcx, [rbp+16]
    00404474call usrToCell__system_5354
    00404479mov [rbp-8], rax
    0040447dmov rax, [rbp-8]
    00404481mov rcx, rax
    00404484call decRef__system_5399
    00404489call popFrame
    0040448enop
    0040448fadd rsp, 96
    00404493pop rbp
    00404494ret
    00404419
    00404495
    00404495pluspercent___system_696:
    00404495push rbp
    00404496mov rbp, rsp
    00404499sub rsp, 96
    0040449dmov [rbp+16], rcx
    004044a1mov [rbp+24], rdx
    004044a5lea rax, [rip+0x29118]
    004044acmov [rbp-56], rax
    004044b0lea rax, [rip+0x29001]
    004044b7mov [rbp-40], rax
    004044bbmov [rbp-48], 0
    004044c3mov [rbp-32], 0
    004044c9lea rax, [rbp-64]
    004044cdmov rcx, rax
    004044d0call nimFrame
    004044d5mov [rbp-8], 0
    004044ddmov [rbp-48], 403
    004044e5lea rax, [rip+0x28fcc]
    004044ecmov [rbp-40], rax
    004044f0mov [rbp-48], 407
    004044f8lea rax, [rip+0x28fb9]
    004044ffmov [rbp-40], rax
    00404503mov rdx, [rbp+16]
    00404507mov rax, [rbp+24]
    0040450badd rax, rdx
    0040450emov [rbp-8], rax
    00404512call popFrame
    00404517mov rax, [rbp-8]
    0040451badd rsp, 96
    0040451fpop rbp
    00404520ret
    00404495
    00404521
    00404521incRef__system_5392:
    00404521push rbp
    00404522mov rbp, rsp
    00404525sub rsp, 80
    00404529mov [rbp+16], rcx
    0040452dlea rax, [rip+0x29093]
    00404534mov [rbp-40], rax
    00404538lea rax, [rip+0x29021]
    0040453fmov [rbp-24], rax
    00404543mov [rbp-32], 0
    0040454bmov [rbp-16], 0
    00404551lea rax, [rbp-48]
    00404555mov rcx, rax
    00404558call nimFrame
    0040455dmov [rbp-32], 231
    00404565lea rax, [rip+0x28ff4]
    0040456cmov [rbp-24], rax
    00404570mov rax, [rbp+16]
    00404574mov rax, [rax]
    00404577mov edx, 8
    0040457cmov rcx, rax
    0040457fcall pluspercent___system_696
    00404584mov rdx, [rbp+16]
    00404588mov [rdx], rax
    0040458bcall popFrame
    00404590nop
    00404591add rsp, 80
    00404595pop rbp
    00404596ret
    00404521
    00404597
    00404597asgnRef:
    00404597push rbp
    00404598mov rbp, rsp
    0040459bsub rsp, 96
    0040459fmov [rbp+16], rcx
    004045a3mov [rbp+24], rdx
    004045a7lea rax, [rip+0x29020]
    004045aemov [rbp-56], rax
    004045b2lea rax, [rip+0x28fa7]
    004045b9mov [rbp-40], rax
    004045bdmov [rbp-48], 0
    004045c5mov [rbp-32], 0
    004045cblea rax, [rbp-64]
    004045cfmov rcx, rax
    004045d2call nimFrame
    004045d7mov [rbp-48], 286
    004045dflea rax, [rip+0x28f7a]
    004045e6mov [rbp-40], rax
    004045eacmp [rbp+24], 0
    004045efje 0x404617
    004045f1mov [rbp-8], 0
    004045f9mov rax, [rbp+24]
    004045fdmov rcx, rax
    00404600call usrToCell__system_5354
    00404605mov [rbp-8], rax
    00404609mov rax, [rbp-8]
    0040460dmov rcx, rax
    00404610call incRef__system_5392
    00404615jmp 0x404618
    00404617
    00404617loc_404617:
    00404617nop
    00404618
    00404618loc_404618:
    00404618mov [rbp-48], 287
    00404620lea rax, [rip+0x28f39]
    00404627mov [rbp-40], rax
    0040462bmov rax, [rbp+16]
    0040462fmov rax, [rax]
    00404632test rax, rax
    00404635je 0x404660
    00404637mov [rbp-16], 0
    0040463fmov rax, [rbp+16]
    00404643mov rax, [rax]
    00404646mov rcx, rax
    00404649call usrToCell__system_5354
    0040464emov [rbp-16], rax
    00404652mov rax, [rbp-16]
    00404656mov rcx, rax
    00404659call decRef__system_5399
    0040465ejmp 0x404661
    00404660
    00404660loc_404660:
    00404660nop
    00404661
    00404661loc_404661:
    00404661mov [rbp-48], 288
    00404669lea rax, [rip+0x28ef0]
    00404670mov [rbp-40], rax
    00404674mov rax, [rbp+16]
    00404678mov rdx, [rbp+24]
    0040467cmov [rax], rdx
    0040467fcall popFrame
    00404684nop
    00404685add rsp, 96
    00404689pop rbp
    0040468aret
    00404597
    0040468b
    0040468braiseEIO__systemZio_96:
    0040468bpush rbp
    0040468cmov rbp, rsp
    0040468fsub rsp, 112
    00404693mov [rbp+16], rcx
    00404697lea rax, [rip+0x28f38]
    0040469emov [rbp-56], rax
    004046a2lea rax, [rip+0x28f37]
    004046a9mov [rbp-40], rax
    004046admov [rbp-48], 0
    004046b5mov [rbp-32], 0
    004046bblea rax, [rbp-64]
    004046bfmov rcx, rax
    004046c2call nimFrame
    004046c7mov [rbp-8], 0
    004046cfmov edx, 48
    004046d4mov rcx, [rip+0x2c875]
    004046dbcall newObj
    004046e0mov [rbp-8], rax
    004046e4mov rax, [rbp-8]
    004046e8mov rdx, [rip+0x2c811]
    004046efmov [rax], rdx
    004046f2mov rax, [rbp-8]
    004046f6lea rdx, [rip+0x28f24]
    004046fdmov [rax+16], rdx
    00404701mov [rbp-16], 0
    00404709mov rax, [rbp-8]
    0040470dmov rax, [rax+24]
    00404711mov [rbp-16], rax
    00404715mov rcx, [rbp+16]
    00404719call copyStringRC1
    0040471emov rdx, [rbp-8]
    00404722mov [rdx+24], rax
    00404726cmp [rbp-16], 0
    0040472bje 0x404739
    0040472dmov rax, [rbp-16]
    00404731mov rcx, rax
    00404734call nimGCunrefNoCycle
    00404739
    00404739loc_404739:
    00404739mov rax, [rbp-8]
    0040473dadd rax, 8
    00404741mov edx, 0
    00404746mov rcx, rax
    00404749call asgnRef
    0040474emov [rbp-48], 153
    00404756lea rax, [rip+0x28e83]
    0040475dmov [rbp-40], rax
    00404761mov rax, [rbp-8]
    00404765mov [rsp+32], 153
    0040476elea r9, [rip+0x28e6b]
    00404775lea r8, [rip+0x28e5a]
    0040477clea rdx, [rip+0x28e9e]
    00404783mov rcx, rax
    00404786call raiseExceptionEx
    0040478bcall popFrame
    00404790nop
    00404791add rsp, 112
    00404795pop rbp
    00404796ret
    0040468b
    00404797
    00404797writeWindows__systemZio_205:
    00404797push rbp
    00404798mov rbp, rsp
    0040479bsub rsp, 64
    0040479fmov [rbp+16], rcx
    004047a3mov [rbp+24], rdx
    004047a7mov eax, r8l
    004047aamov [rbp+32], al
    004047admov rax, [rbp+24]
    004047b1mov rcx, rax
    004047b4call nimToCStringConv
    004047b9mov r8, rax
    004047bclea rdx, [rip+0x28e66]
    004047c3mov rcx, [rbp+16]
    004047c7call fprintf
    004047ccmov [rbp-4], eax
    004047cf
    004047cfloc_4047cf:
    004047cfmov eax, [rbp-4]
    004047d2movsxd rdx, eax
    004047d5cmp [rbp+24], 0
    004047daje 0x4047e5
    004047dcmov rax, [rbp+24]
    004047e0mov rax, [rax]
    004047e3jmp 0x4047ea
    004047e5
    004047e5loc_4047e5:
    004047e5mov eax, 0
    004047ea
    004047ealoc_4047ea:
    004047eacmp rax, rdx
    004047edjle 0x4049d9
    004047f3cmp [rbp-4], 0
    004047f7js 0x404819
    004047f9mov eax, [rbp-4]
    004047fcmovsxd rdx, eax
    004047ffcmp [rbp+24], 0
    00404804je 0x40480f
    00404806mov rax, [rbp+24]
    0040480amov rax, [rax]
    0040480djmp 0x404814
    0040480f
    0040480floc_40480f:
    0040480fmov eax, 0
    00404814
    00404814loc_404814:
    00404814cmp rax, rdx
    00404817jg 0x404841
    00404819
    00404819loc_404819:
    00404819cmp [rbp+24], 0
    0040481eje 0x40482d
    00404820mov rax, [rbp+24]
    00404824mov rax, [rax]
    00404827lea rdx, [rax-1]
    0040482bjmp 0x404834
    0040482d
    0040482dloc_40482d:
    0040482dmov rdx, -1
    00404834
    00404834loc_404834:
    00404834mov eax, [rbp-4]
    00404837cdqe
    00404839mov rcx, rax
    0040483ccall raiseIndexError2
    00404841
    00404841loc_404841:
    00404841mov rdx, [rbp+24]
    00404845mov eax, [rbp-4]
    00404848cdqe
    0040484amovzx eax, [rdx+rax+16]
    0040484ftest al, al
    00404851jne 0x4048e5
    00404857mov rdx, [rbp+16]
    0040485bmov ecx, 0
    00404860call fputc
    00404865mov [rbp-8], eax
    00404868cmp [rbp-8], 0
    0040486cje 0x40488b
    0040486emovzx eax, [rbp+32]
    00404872xor eax, 1
    00404875test al, al
    00404877jne 0x404885
    00404879lea rcx, [rip+0x28c00]
    00404880call raiseEIO__systemZio_96
    00404885
    00404885loc_404885:
    00404885nop
    00404886jmp 0x4049da
    0040488b
    0040488bloc_40488b:
    0040488bnop
    0040488cmov eax, [rbp-4]
    0040488fcdqe
    00404891mov ecx, 0
    00404896add rax, 1
    0040489amov rdx, rax
    0040489dlea rax, [rbp-24]
    004048a1mov [rax], rdx
    004048a4mov rax, rcx
    004048a7and eax, 1
    004048aatest al, al
    004048acje 0x4048b3
    004048aecall raiseOverflow
    004048b3
    004048b3loc_4048b3:
    004048b3mov rax, [rbp-24]
    004048b7mov rdx, 0xffffffff7fffffff
    004048c1cmp rax, rdx
    004048c4jle 0x4048d4
    004048c6mov rax, [rbp-24]
    004048camov edx, 0xffffffff80000000
    004048cfcmp rax, rdx
    004048d2jl 0x4048d9
    004048d4
    004048d4loc_4048d4:
    004048d4call raiseOverflow
    004048d9
    004048d9loc_4048d9:
    004048d9mov rax, [rbp-24]
    004048ddmov [rbp-4], eax
    004048e0jmp 0x4049d4
    004048e5
    004048e5loc_4048e5:
    004048e5nop
    004048e6cmp [rbp-4], 0
    004048eajs 0x40490c
    004048ecmov eax, [rbp-4]
    004048efmovsxd rdx, eax
    004048f2cmp [rbp+24], 0
    004048f7je 0x404902
    004048f9mov rax, [rbp+24]
    004048fdmov rax, [rax]
    00404900jmp 0x404907
    00404902
    00404902loc_404902:
    00404902mov eax, 0
    00404907
    00404907loc_404907:
    00404907cmp rax, rdx
    0040490ajg 0x404934
    0040490c
    0040490cloc_40490c:
    0040490ccmp [rbp+24], 0
    00404911je 0x404920
    00404913mov rax, [rbp+24]
    00404917mov rax, [rax]
    0040491alea rdx, [rax-1]
    0040491ejmp 0x404927
    00404920
    00404920loc_404920:
    00404920mov rdx, -1
    00404927
    00404927loc_404927:
    00404927mov eax, [rbp-4]
    0040492acdqe
    0040492cmov rcx, rax
    0040492fcall raiseIndexError2
    00404934
    00404934loc_404934:
    00404934mov eax, [rbp-4]
    00404937cdqe
    00404939lea rdx, [rax+16]
    0040493dmov rax, [rbp+24]
    00404941add rax, rdx
    00404944mov r8, rax
    00404947lea rdx, [rip+0x28cdb]
    0040494emov rcx, [rbp+16]
    00404952call fprintf
    00404957mov [rbp-12], eax
    0040495acmp [rbp-12], 0
    0040495ejg 0x40497a
    00404960movzx eax, [rbp+32]
    00404964xor eax, 1
    00404967test al, al
    00404969jne 0x404977
    0040496blea rcx, [rip+0x28b0e]
    00404972call raiseEIO__systemZio_96
    00404977
    00404977loc_404977:
    00404977nop
    00404978jmp 0x4049da
    0040497a
    0040497aloc_40497a:
    0040497anop
    0040497bmov eax, [rbp-4]
    0040497emovsxd rdx, eax
    00404981mov eax, [rbp-12]
    00404984cdqe
    00404986mov ecx, 0
    0040498badd rax, rdx
    0040498emov rdx, rax
    00404991lea rax, [rbp-32]
    00404995mov [rax], rdx
    00404998mov rax, rcx
    0040499band eax, 1
    0040499etest al, al
    004049a0je 0x4049a7
    004049a2call raiseOverflow
    004049a7
    004049a7loc_4049a7:
    004049a7mov rax, [rbp-32]
    004049abmov rdx, 0xffffffff7fffffff
    004049b5cmp rax, rdx
    004049b8jle 0x4049c8
    004049bamov rax, [rbp-32]
    004049bemov edx, 0xffffffff80000000
    004049c3cmp rax, rdx
    004049c6jl 0x4049cd
    004049c8
    004049c8loc_4049c8:
    004049c8call raiseOverflow
    004049cd
    004049cdloc_4049cd:
    004049cdmov rax, [rbp-32]
    004049d1mov [rbp-4], eax
    004049d4
    004049d4loc_4049d4:
    004049d4jmp 0x4047cf
    004049d9
    004049d9loc_4049d9:
    004049d9nop
    004049da
    004049daloc_4049da:
    004049danop
    004049dbadd rsp, 64
    004049dfpop rbp
    004049e0ret
    00404797
    004049e1
    004049e1echoBinSafe:
    004049e1push rbp
    004049e2push rbx
    004049e3sub rsp, 136
    004049ealea rbp, [rsp+128]
    004049f2mov [rbp+32], rcx
    004049f6mov [rbp+40], rdx
    004049falea rax, [rip+0x28c2b]
    00404a01mov [rbp-72], rax
    00404a05lea rax, [rip+0x28bd4]
    00404a0cmov [rbp-56], rax
    00404a10mov [rbp-64], 0
    00404a18mov [rbp-48], 0
    00404a1elea rax, [rbp-80]
    00404a22mov rcx, rax
    00404a25call nimFrame
    00404a2amov [rbp-16], 0
    00404a32mov [rbp-64], 8
    00404a3alea rax, [rip+0x28bf7]
    00404a41mov [rbp-56], rax
    00404a45mov [rbp-8], 0
    00404a4dmov [rbp-64], 9
    00404a55lea rax, [rip+0x28bdc]
    00404a5cmov [rbp-56], rax
    00404a60
    00404a60loc_404a60:
    00404a60mov rax, [rbp-8]
    00404a64cmp rax, [rbp+40]
    00404a68jge 0x404b30
    00404a6emov [rbp-64], 818
    00404a76lea rax, [rip+0x28b63]
    00404a7dmov [rbp-56], rax
    00404a81cmp [rbp-8], 0
    00404a86js 0x404a92
    00404a88mov rax, [rbp-8]
    00404a8ccmp rax, [rbp+40]
    00404a90jl 0x404aa6
    00404a92
    00404a92loc_404a92:
    00404a92mov rax, [rbp+40]
    00404a96lea rdx, [rax-1]
    00404a9amov rax, [rbp-8]
    00404a9emov rcx, rax
    00404aa1call raiseIndexError2
    00404aa6
    00404aa6loc_404aa6:
    00404aa6mov rax, [rbp-8]
    00404aaalea rdx, [8*rax]
    00404ab2mov rax, [rbp+32]
    00404ab6add rax, rdx
    00404ab9mov [rbp-16], rax
    00404abdmov rax, [rbp-16]
    00404ac1mov rbx, [rax]
    00404ac4mov ecx, 1
    00404ac9mov rax, [rip+0x27640]
    00404ad0call rax
    00404ad2mov r8l, 0
    00404ad8mov rdx, rbx
    00404adbmov rcx, rax
    00404adecall writeWindows__systemZio_205
    00404ae3mov [rbp-64], 11
    00404aeblea rax, [rip+0x28b46]
    00404af2mov [rbp-56], rax
    00404af6mov edx, 0
    00404afbmov rax, [rbp-8]
    00404affadd rax, 1
    00404b03jno 0x404b0a
    00404b05mov edx, 1
    00404b0a
    00404b0aloc_404b0a:
    00404b0amov rcx, rax
    00404b0dlea rax, [rbp-88]
    00404b11mov [rax], rcx
    00404b14mov rax, rdx
    00404b17and eax, 1
    00404b1atest al, al
    00404b1cje 0x404b23
    00404b1ecall raiseOverflow
    00404b23
    00404b23loc_404b23:
    00404b23mov rax, [rbp-88]
    00404b27mov [rbp-8], rax
    00404b2bjmp 0x404a60
    00404b30
    00404b30loc_404b30:
    00404b30nop
    00404b31mov [rbp-64], 824
    00404b39lea rax, [rip+0x28aa0]
    00404b40mov [rbp-56], rax
    00404b44mov [rbp-20], 0
    00404b4bmov ecx, 1
    00404b50mov rax, [rip+0x275b9]
    00404b57call rax
    00404b59mov r9, rax
    00404b5cmov r8l, 1
    00404b62mov edx, 1
    00404b67lea rcx, [rip+0x28b12]
    00404b6ecall fwrite
    00404b73mov [rbp-20], eax
    00404b76mov [rbp-64], 825
    00404b7elea rax, [rip+0x28a5b]
    00404b85mov [rbp-56], rax
    00404b89mov [rbp-24], 0
    00404b90mov ecx, 1
    00404b95mov rax, [rip+0x27574]
    00404b9ccall rax
    00404b9emov rcx, rax
    00404ba1call fflush
    00404ba6mov [rbp-24], eax
    00404ba9call popFrame
    00404baenop
    00404bafadd rsp, 136
    00404bb6pop rbx
    00404bb7pop rbp
    00404bb8ret
    004049e1
    00404bb9
    00404bb9atmdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot8atslibatssystematsiodotnim_Init000:
    00404bb9push rbp
    00404bbamov rbp, rsp
    00404bbdsub rsp, 112
    00404bc1lea rax, [rip+0x28aba]
    00404bc8mov [rbp-72], rax
    00404bcclea rax, [rip+0x28a0d]
    00404bd3mov [rbp-56], rax
    00404bd7mov [rbp-64], 0
    00404bdfmov [rbp-48], 0
    00404be5lea rax, [rbp-80]
    00404be9mov rcx, rax
    00404beccall nimFrame
    00404bf1mov [rbp-64], 842
    00404bf9lea rax, [rip+0x289e0]
    00404c00mov [rbp-56], rax
    00404c04mov [rbp-4], 0
    00404c0bmov ecx, 0
    00404c10mov rax, [rip+0x274f9]
    00404c17call rax
    00404c19mov rcx, rax
    00404c1cmov rax, [rip+0x44711]
    00404c23call rax
    00404c25mov [rbp-4], eax
    00404c28mov eax, [rbp-4]
    00404c2bmov edx, 32768
    00404c30mov ecx, eax
    00404c32mov rax, [rip+0x4472b]
    00404c39call rax
    00404c3bmov [rbp-64], 843
    00404c43lea rax, [rip+0x28996]
    00404c4amov [rbp-56], rax
    00404c4emov [rbp-8], 0
    00404c55mov ecx, 1
    00404c5amov rax, [rip+0x274af]
    00404c61call rax
    00404c63mov rcx, rax
    00404c66mov rax, [rip+0x446c7]
    00404c6dcall rax
    00404c6fmov [rbp-8], eax
    00404c72mov eax, [rbp-8]
    00404c75mov edx, 32768
    00404c7amov ecx, eax
    00404c7cmov rax, [rip+0x446e1]
    00404c83call rax
    00404c85mov [rbp-64], 844
    00404c8dlea rax, [rip+0x2894c]
    00404c94mov [rbp-56], rax
    00404c98mov [rbp-12], 0
    00404c9fmov ecx, 2
    00404ca4mov rax, [rip+0x27465]
    00404cabcall rax
    00404cadmov rcx, rax
    00404cb0mov rax, [rip+0x4467d]
    00404cb7call rax
    00404cb9mov [rbp-12], eax
    00404cbcmov eax, [rbp-12]
    00404cbfmov edx, 32768
    00404cc4mov ecx, eax
    00404cc6mov rax, [rip+0x44697]
    00404ccdcall rax
    00404ccfmov [rbp-64], 854
    00404cd7lea rax, [rip+0x28902]
    00404cdemov [rbp-56], rax
    00404ce2mov [rbp-16], 0
    00404ce9mov rax, [rip+0x313d0]
    00404cf0mov ecx, 65001
    00404cf5call rax
    00404cf7mov [rbp-16], eax
    00404cfamov [rbp-64], 855
    00404d02lea rax, [rip+0x288d7]
    00404d09mov [rbp-56], rax
    00404d0dmov [rbp-20], 0
    00404d14mov rax, [rip+0x313ad]
    00404d1bmov ecx, 65001
    00404d20call rax
    00404d22mov [rbp-20], eax
    00404d25call popFrame
    00404d2anop
    00404d2badd rsp, 112
    00404d2fpop rbp
    00404d30ret
    00404bb9