Function at 0x180003fb0
Capabilities:
Get memory capacity
Manipulate console buffer
Print debug messages
Query environment variable

Disassembly:
sub rsp, 0xa8
mov dword [rsp + 0x5c], 0x1cff
mov dword [rsp + 0x44], 0xbbc
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x60], 0x2340
mov dword [rsp + 0x68], 0
jmp 0x180003ffb
mov eax, dword [rsp + 0x68]
inc eax
mov dword [rsp + 0x68], eax
cmp dword [rsp + 0x68], 0xe
jge 0x18000400f
mov eax, dword [rsp + 0x60]
add eax, 4
mov dword [rsp + 0x60], eax
jmp 0x180003ff1
mov dword [rsp + 0x54], 0xb7
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x60]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x48], 0xbd0
mov dword [rsp + 0x50], 0
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], 0xeef
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x54]
add eax, 0x6ad
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x5c]
sub eax, 0x2ed
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x4c], 0x196f
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x48]
add eax, 0x123d
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x44]
add eax, 0x1371
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x54]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x44]
sub eax, 0x605
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x48]
sub eax, 0x1cab
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x60]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x180004111
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
jmp 0x1800040f5
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x54]
sub eax, 0xfcc
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
add eax, 0x2182
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x60]
add eax, 0x1b28
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x58]
sub eax, 0x16b9
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x44]
add eax, 0x1ca3
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x64], 0
mov eax, dword [rsp + 0x64]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x1800041d8
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
jmp 0x1800041ba
mov eax, dword [rsp + 0x48]
add eax, 0x1d94
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x58]
add eax, 0x12c2
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x40]
add eax, 0x20f9
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x48]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x40]
add eax, 0x1b43
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x12a4
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x4c]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x180004257
mov eax, dword [rsp + 0x4c]
inc eax
mov dword [rsp + 0x4c], eax
jmp 0x180004239
mov eax, dword [rsp + 0x60]
add eax, 0x1556
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x50]
sub eax, 0xfd9
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x58]
sub eax, 0x14f9
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x6c], 0
jmp 0x180004292
mov eax, dword [rsp + 0x6c]
inc eax
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0x31
jge 0x1800042a6
mov eax, dword [rsp + 0x40]
add eax, 4
mov dword [rsp + 0x40], eax
jmp 0x180004288
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x48]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x1800042e5
mov eax, dword [rsp + 0x48]
sub eax, 0x1270
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x4c]
sub eax, 0x1af1
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x180004310
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
jmp 0x1800042f2
mov eax, dword [rsp + 0x44]
sub eax, 0x11d1
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x40]
add eax, 0x6da
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x60]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x4c]
add eax, 0x20c1
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x48]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x18000436f
cmp dword [rsp + 0x48], 0
jle 0x18000436f
mov eax, dword [rsp + 0x48]
add eax, 0x2554
mov dword [rsp + 0x48], eax
jmp 0x18000437c
mov eax, dword [rsp + 0x48]
sub eax, 0x2554
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x54]
add eax, 0x1674
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x54]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
add eax, 0x1c43
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x44]
sub eax, 0x9af
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x60]
add eax, 0x20ba
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x58]
sub eax, 0x1a66
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x54]
sub eax, 0x2a4
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x4c]
sub eax, 0xb97
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
add eax, 0x1970
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x48]
add eax, 0xcb1
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x54]
add eax, 0x376
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x5c]
add eax, 0xced
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x40]
add eax, 0x5ef
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
sub eax, 0x1226
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x4c]
add eax, 0x1d4f
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
sub eax, 0x686
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x44]
sub eax, 0x193d
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
add eax, 0x1a39
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x50]
add eax, 0x21c7
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x1246
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x70], 0
jmp 0x180004587
mov eax, dword [rsp + 0x70]
inc eax
mov dword [rsp + 0x70], eax
cmp dword [rsp + 0x70], 0x4e
jge 0x18000459a
mov eax, dword [rsp + 0x58]
inc eax
mov dword [rsp + 0x58], eax
jmp 0x18000457d
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x54]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x4c]
add eax, 0x413
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x5c]
sub eax, 0x2662
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x60]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x180004632
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
jmp 0x180004614
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
add eax, 0xd49
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
cdq
and edx, 3
add eax, edx
and eax, 3
sub eax, edx
test eax, eax
je 0x180004698
cmp dword [rsp + 0x40], 0
jle 0x180004698
mov eax, dword [rsp + 0x40]
add eax, 0xa04
mov dword [rsp + 0x40], eax
jmp 0x1800046a5
mov eax, dword [rsp + 0x40]
sub eax, 0xa04
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x5c]
sub eax, 0x9ae
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x74], 0
jmp 0x180004746
mov eax, dword [rsp + 0x74]
inc eax
mov dword [rsp + 0x74], eax
cmp dword [rsp + 0x74], 0xd
jge 0x18000475a
mov eax, dword [rsp + 0x58]
add eax, 9
mov dword [rsp + 0x58], eax
jmp 0x18000473c
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x60]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x180004788
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
jmp 0x18000476a
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x50]
cdq
and edx, 3
add eax, edx
and eax, 3
sub eax, edx
test eax, eax
je 0x1800047f8
mov eax, dword [rsp + 0x50]
sub eax, 0xa3c
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x48]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x4c]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x180004850
cmp dword [rsp + 0x4c], 0
jle 0x180004850
mov eax, dword [rsp + 0x4c]
sub eax, 0x20d4
mov dword [rsp + 0x4c], eax
jmp 0x18000485d
mov eax, dword [rsp + 0x4c]
add eax, 0x20d4
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x78], 0
jmp 0x180004891
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 0x38
jge 0x1800048a4
mov eax, dword [rsp + 0x5c]
dec eax
mov dword [rsp + 0x5c], eax
jmp 0x180004887
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x60]
add eax, 0x1431
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x1724
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x48]
sub eax, 0x11b3
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x40]
sub eax, 0x2157
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x58]
sub eax, 0xa4f
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x40]
sub eax, 0x6a
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x7c], 0
jmp 0x180004934
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
cmp dword [rsp + 0x7c], 0x60
jge 0x180004948
mov eax, dword [rsp + 0x64]
add eax, 4
mov dword [rsp + 0x64], eax
jmp 0x18000492a
mov eax, dword [rsp + 0x44]
sub eax, 0x50e
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x44]
sub eax, 0x1908
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x178d
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
sub eax, 0x25cd
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x58]
add eax, 0x11e3
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x4c]
add eax, 0x2338
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
add eax, 0x1191
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x48]
add eax, 0x18ee
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x60]
add eax, 0x77d
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x54]
add eax, 0x18cf
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x58]
sub eax, 0x2004
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x6be
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x48]
add eax, 0x156d
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x44]
cdq
mov ecx, 3
idiv ecx
mov eax, edx
test eax, eax
je 0x180004a99
cmp dword [rsp + 0x44], 0
jle 0x180004a99
mov eax, dword [rsp + 0x44]
sub eax, 0x1c53
mov dword [rsp + 0x44], eax
jmp 0x180004aa6
mov eax, dword [rsp + 0x44]
add eax, 0x1c53
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x5c]
sub eax, 0x10aa
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x48]
sub eax, 0x1f3
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x4c]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x180004adc
mov eax, dword [rsp + 0x4c]
inc eax
mov dword [rsp + 0x4c], eax
jmp 0x180004ac0
mov eax, dword [rsp + 0x44]
sub eax, 0x1be8
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x4c]
sub eax, 0x12eb
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x60]
add eax, 0x1506
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x48]
sub eax, 0xa72
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x5c]
add eax, 0xdc6
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x1acb
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x4c]
add eax, 0x17f5
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x50]
add eax, 0x152d
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x4c]
sub eax, 0x26fa
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
add eax, 0xb8b
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x48]
sub eax, 0x17d4
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x180004bc7
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
jmp 0x180004bab
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x5c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x60]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x733
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x48]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
add eax, 0x1fb4
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x44]
add eax, 0x1203
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x54]
sub eax, 0xfb0
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x44]
add eax, 0x1b4
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x58]
sub eax, 0x240b
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x54]
add eax, 0x18a1
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x48]
sub eax, 0xd17
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x40]
add eax, 0x24a3
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x54]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x5c]
add eax, 0x10e7
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
sub eax, 0xfc8
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x80], 0
jmp 0x180004d73
mov eax, dword [rsp + 0x80]
inc eax
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 0x38
jge 0x180004d8a
mov eax, dword [rsp + 0x50]
add eax, 3
mov dword [rsp + 0x50], eax
jmp 0x180004d63
mov eax, dword [rsp + 0x4c]
add eax, 0x14b
mov dword [rsp + 0x4c], eax
mov eax, dword [0x18007bda0]
lea r9, [0x18007bda8]
mov r8d, dword [0x18007bda8]
mov edx, eax
mov rcx, qword [0x18007bdb8]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [0x18007bda4]
mov ecx, 0xbf3a21f1
cmp rax, rcx
jne 0x180004f31
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_BackupSeek]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetProcessMitigationPolicy]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FatalAppExitW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetFinalPathNameByHandleW]
xor eax, eax
mov qword [rsp + 0x90], rax
xor ecx, ecx
xor eax, eax
mov rdx, qword [rsp + 0x90]
lock cmpxchg qword [rcx], rdx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUserGeoID]
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x84], eax
mov qword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x84]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SearchPathW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetBinaryTypeW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemFileCacheSize]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetThreadPriorityBoost]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetWaitableTimerEx]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
add rsp, 0xa8
ret