Function at 0x4aa216
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x114
or dword [ebp + 0x58], 0xffffffff
push ebx
push esi
push edi
mov ebx, ecx
xor edi, edi
push 1
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x38], edi
call fcn.004a74b2
or dword [ebp + 0x60], 0xffffffff
push edi
push 0x517944
mov ecx, ebx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x68], edi
mov byte [ebp + 0x67], 0
call fcn.00454455
mov esi, eax
cmp esi, edi
je 0x4aa2b1
lea ecx, [ebx + 0x124]
call fcn.004a0e99
mov edi, eax
test edi, edi
je 0x4aa279
cmp byte [edi], 0
je 0x4aa279
cmp dword [ebx + 0x110], 3
jne 0x4aa289
push 0
push 0x51b050
mov ecx, ebx
call fcn.00454455
mov edi, eax
mov ecx, esi
lea eax, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4aa28e
sub ecx, eax
movzx eax, byte [ebx + 0x110]
push eax
push edi
push ecx
mov ecx, dword [ebp + 0x34]
push esi
call fcn.004ba979
mov byte [ebp + 0x67], al
xor edi, edi
jmp 0x4aa2be
cmp dword [ebx + 0x110], 6
jne 0x4aa2be
mov byte [ebp + 0x67], 1
push edi
push 0x51c5f0
mov ecx, ebx
call fcn.00454455
test eax, eax
jne 0x4aa2e8
lea ecx, [ebx + 0x128]
call fcn.004a7604
test al, al
je 0x4aa2e8
cmp byte [ebp + 0x67], 0
je 0x4aa9fa
cmp dword [ebx + 0x110], 3
jne 0x4aa33e
push edi
push 0x51b050
mov ecx, ebx
call fcn.00454455
mov dword [ebp + 0x5c], eax
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aa304
push 0x14
sub eax, esi
pop ecx
cmp eax, ecx
jle 0x4aa316
mov ecx, eax
call fcn.00479b81
mov edx, dword [ebp + 0x5c]
mov esi, eax
push 1
push 0x28
mov ecx, esi
call fcn.00428acd
mov ecx, esi
call fcn.00454b79
mov dl, 1
mov ecx, esi
mov dword [ebp + 0x38], eax
call fcn.00479b79
mov dword [ebp + 0x2c], edi
cmp dword [ebx + 0x1a8], edi
je 0x4aa359
push edi
push 0x51546c
mov ecx, ebx
call fcn.00454455
mov dword [ebp + 0x2c], eax
test byte [ebx + 0x214], 8
je 0x4aa368
inc dword [0x56b850]
lea eax, [ebx + 0x17c]
mov dword [eax], edi
mov dword [eax + 8], edi
mov dword [eax + 4], edi
test byte [ebx + 0x214], 8
jne 0x4aa395
cmp dword [ebp + 0x2c], edi
je 0x4aa395
push dword [ebp + 0x2c]
push 0x52d94c
push eax
call fcn.004a03fc
add esp, 0xc
push 0x52d93c
push ebx
call fcn.0045425f
pop ecx
pop ecx
push edi
push 0x50fb68
mov ecx, ebx
call fcn.00454455
cmp eax, edi
je 0x4aa406
mov edx, 0x52d7a0
mov ecx, eax
call fcn.00428b46
mov esi, eax
mov dword [ebp + 0x58], esi
test esi, esi
jl 0x4aa9fa
cmp esi, 0x24
je 0x4aa3fe
mov edx, dword [esi*8 + 0x52c220]
mov eax, dword [ebx + 0x114]
mov edi, dword [esi*8 + 0x52c224]
mov ecx, dword [ebx + 0x118]
and eax, edx
and ecx, edi
cmp eax, edx
jne 0x4aa3f7
cmp ecx, edi
je 0x4aa3fe
or dword [ebp + 0x58], 0xffffffff
mov esi, dword [ebp + 0x58]
test esi, esi
jl 0x4aa9fa
mov edi, dword [ebp + 0x34]
push 0
push 0x527818
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4aa425
push eax
call sub.msvcrt.dll_atoi
pop ecx
mov dword [ebp + 0x60], eax
push 0
push 0x510974
mov ecx, ebx
call fcn.00454455
mov esi, eax
mov dword [ebp + 0x50], esi
test esi, esi
je 0x4aa47d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aa43f
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aa458
sub eax, edx
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, dword [ebp + 0x50]
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x68], eax
push 0
push 0x512268
mov ecx, ebx
call fcn.00454455
xor esi, esi
cmp eax, esi
je 0x4aa4a1
cmp edi, esi
je 0x4aa4a1
push eax
lea ecx, [edi + 0x8c]
call fcn.004a0eb9
push esi
push 0x52c8e0
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4aa4c2
cmp edi, esi
je 0x4aa4c2
push eax
lea ecx, [edi + 0x90]
call fcn.004a0eb9
push esi
push 0x52d798
mov ecx, ebx
call fcn.00454455
mov dword [ebp + 0x5c], eax
cmp eax, esi
je 0x4aa54c
xor esi, esi
test byte [0x88dfb0], 1
mov edi, 0x88df84
jne 0x4aa50a
or dword [0x88dfb0], 1
push 1
push esi
push 0x5112f8
push esi
push esi
push esi
mov ecx, edi
call fcn.0040cbf4
push 0x50e493
call fcn.00501866
pop ecx
push edi
lea ecx, [ebp + 0x68]
call fcn.00401966
mov ecx, dword [ebp + 0x5c]
push esi
push 1
push esi
lea eax, [ebp + 0x68]
push eax
push 0x4a9f18
mov edx, ebx
call fcn.00453c64
mov ecx, dword [ebp + 0x68]
mov dword [ebx + 0x21c], eax
cmp ecx, esi
je 0x4aa53c
call fcn.00401728
xor eax, eax
cmp dword [ebx + 0x21c], esi
sete al
jmp 0x4aaa03
cmp dword [ebp + 0x58], esi
mov dword [ebp + 0x6c], esi
jl 0x4aa563
push 0x5156ec
mov ecx, ebx
call fcn.0045449c
mov dword [ebp + 0x6c], eax
cmp dword [ebp + 0x6c], esi
mov byte [ebp + 0x56], 1
mov dword [ebp + 0x70], esi
jle 0x4aa733
push dword [ebp + 0x70]
mov ecx, ebx
push 0x5156ec
call fcn.00454455
test eax, eax
je case.default.0x4aa618
push 1
push 0x28
mov edx, eax
lea ecx, [ebp - 0x68]
call fcn.00428acd
test al, al
je case.default.0x4aa618
lea ecx, [ebp - 0x68]
call fcn.004a342e
mov esi, eax
test esi, esi
je case.default.0x4aa618
mov edi, dword [ebp + 0x58]
test edi, edi
je 0x4aa5c8
cmp edi, 1
je 0x4aa5c8
mov ecx, 0x400
cmp edi, 2
jne 0x4aa5cd
mov ecx, 0x800
mov eax, dword [ebx + 0x114]
and eax, ecx
mov ecx, dword [ebx + 0x118]
xor edx, edx
and ecx, edx
or eax, ecx
jne 0x4aa604
mov ecx, dword [ebp + 0x38]
test ecx, ecx
je 0x4aa5fd
mov eax, dword [esi + 0x47c]
test eax, eax
je 0x4aa5fd
call fcn.0042a25c
test eax, eax
je 0x4aa604
or dword [ebp + 0x58], 0xffffffff
mov edi, dword [ebp + 0x58]
cmp edi, 8
jg 0x4aa6a6
je 0x4aa68e
cmp edi, 7
ja case.default.0x4aa618
jmp dword [edi*4 + 0x4ace7a]
mov ecx, esi
call fcn.0042092d
jmp case.default.0x4aa618
mov ecx, esi
call fcn.00420857
jmp case.default.0x4aa618
mov ecx, esi
call fcn.00419137
jmp case.default.0x4aa618
mov ecx, esi
call fcn.0041f39a
jmp case.default.0x4aa618
mov ecx, esi
call fcn.0041f435
jmp case.default.0x4aa618
lea eax, [ebp + 0x56]
push eax
push esi
mov ecx, ebx
call fcn.004a8f64
jmp case.default.0x4aa618
lea eax, [ebp + 0x56]
push eax
push esi
mov ecx, ebx
call fcn.004a70ef
jmp case.default.0x4aa618
lea eax, [ebp + 0x56]
push eax
push esi
mov ecx, ebx
call fcn.004a7f64
jmp case.default.0x4aa618
movzx eax, byte [0x88f9cf]
neg eax
sbb eax, eax
and eax, 4
push eax
mov ecx, esi
call fcn.004228bf
jmp case.default.0x4aa618
cmp edi, 0x19
jg 0x4aa705
je 0x4aa701
mov eax, edi
sub eax, 0xf
je 0x4aa6ee
dec eax
je 0x4aa6e5
sub eax, 6
je 0x4aa6d2
dec eax
jne case.default.0x4aa618
movzx eax, byte [0x88f9cf]
neg eax
sbb eax, eax
and eax, 4
or eax, 3
jmp 0x4aa69c
movzx eax, byte [0x88f9cf]
neg eax
sbb eax, eax
and eax, 4
or eax, 1
jmp 0x4aa69c
mov ecx, esi
call fcn.0041f317
jmp case.default.0x4aa618
movzx eax, byte [0x88f9cf]
neg eax
sbb eax, eax
and eax, 4
or eax, 2
jmp 0x4aa69c
push 5
jmp 0x4aa71c
mov eax, edi
sub eax, 0x1a
je 0x4aa71a
dec eax
je 0x4aa716
dec eax
jne case.default.0x4aa618
push 6
jmp 0x4aa71c
push 7
jmp 0x4aa71c
push 4
pop edx
mov ecx, esi
call fcn.004a75ea
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x6c]
jl 0x4aa573
xor edi, edi
cmp dword [ebp + 0x6c], edi
je 0x4aa75b
cmp byte [ebp + 0x56], 0
jne 0x4aa75b
mov esi, dword [ebp + 0x58]
cmp esi, edi
jl 0x4aa75e
cmp esi, 2
jg 0x4aa75e
push 0x52c4c8
push ebx
call fcn.0045425f
pop ecx
pop ecx
jmp 0x4aa75e
mov esi, dword [ebp + 0x58]
cmp esi, 0xe
jne 0x4aa847
mov esi, 0x516e60
push esi
mov ecx, ebx
call fcn.0045449c
mov edi, 0x517968
push edi
mov ecx, ebx
call fcn.0045449c
push edi
mov ecx, ebx
call fcn.0045449c
push esi
mov ecx, ebx
mov dword [ebp + 0x68], eax
call fcn.0045449c
cmp eax, dword [ebp + 0x68]
jl 0x4aa79c
mov eax, dword [ebp + 0x68]
and dword [ebp + 0x60], 0
mov dword [ebp + 0x68], eax
test eax, eax
jle 0x4abf41
push dword [ebp + 0x60]
mov ecx, ebx
push esi
call fcn.00454455
push dword [ebp + 0x60]
mov ecx, ebx
push edi
mov dword [ebp + 0x58], eax
call fcn.00454455
cmp dword [ebp + 0x58], 0
mov dword [ebp + 0x50], eax
je 0x4aa833
push 0x5156ec
mov ecx, ebx
call fcn.0045449c
and dword [ebp + 0x70], 0
mov dword [ebp + 0x6c], eax
test eax, eax
jle 0x4aa833
push dword [ebp + 0x70]
mov ecx, ebx
push 0x5156ec
call fcn.00454455
cmp dword [ebp + 0x50], 0
je 0x4aa828
test eax, eax
je 0x4aa828
push 1
push 0x28
mov edx, eax
lea ecx, [ebp - 0x68]
call fcn.00428acd
test al, al
je 0x4aa828
lea ecx, [ebp - 0x68]
call fcn.004a342e
test eax, eax
je 0x4aa828
push dword [ebp + 0x50]
mov edx, dword [ebp + 0x58]
mov ecx, eax
call fcn.004a72a8
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x6c]
jl 0x4aa7e4
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x68]
jl 0x4aa7ab
jmp 0x4abf41
cmp esi, 0xb
jne 0x4aaa13
push edi
push 0x52d788
mov ecx, ebx
mov dword [ebp + 0x50], edi
call fcn.00454455
test eax, eax
je 0x4aa86b
mov dword [ebp + 0x50], 1
mov esi, 0x516e60
push esi
mov ecx, ebx
call fcn.0045449c
mov edi, 0x517968
push edi
mov ecx, ebx
mov dword [ebp + 0x5c], eax
call fcn.0045449c
cmp dword [ebp + 0x50], 1
jne 0x4aa89e
mov ecx, dword [ebp + 0x5c]
cmp ecx, eax
jne 0x4aa9fa
mov dword [ebp + 0x70], ecx
jmp 0x4aa8bc
push edi
mov ecx, ebx
call fcn.0045449c
push esi
mov ecx, ebx
mov dword [ebp + 0x68], eax
call fcn.0045449c
cmp eax, dword [ebp + 0x68]
jl 0x4aa8b9
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x70], eax
mov ecx, dword [ebp + 0x50]
xor edx, edx
inc edx
call fcn.0049c8cf
and dword [ebp + 0x60], 0
cmp dword [ebp + 0x70], 0
mov esi, eax
jle 0x4aa910
push dword [ebp + 0x60]
mov ecx, ebx
push 0x516e60
call fcn.00454455
push dword [ebp + 0x60]
mov ecx, ebx
push edi
mov dword [ebp + 0x68], eax
call fcn.00454455
cmp dword [ebp + 0x68], 0
je 0x4aa905
test eax, eax
je 0x4aa905
push eax
push dword [ebp + 0x68]
mov ecx, esi
call fcn.0049c6b6
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x70]
jl 0x4aa8d3
lea eax, [ebx + 0x128]
push eax
mov ecx, esi
call fcn.0049c9c7
cmp dword [ebp + 0x50], 1
mov dword [ebp + 0x5c], eax
jne 0x4aa9cf
push 0x52d76c
push ebx
call fcn.0045425f
cmp dword [esi + 0x10], 1
pop ecx
pop ecx
mov eax, 0x52d758
je 0x4aa948
mov eax, 0x52d744
push eax
call fcn.00466ca2
push dword [esi + 0x10]
push 0x52d734
push ebx
call fcn.0045425f
push 0x52d724
push ebx
call fcn.0045425f
xor edi, edi
add esp, 0x18
mov byte [ebp + 0x57], 0
cmp dword [esi + 0xc], edi
je 0x4aa9c2
lea eax, [ebp + 0x57]
push eax
mov ecx, ebx
call fcn.00455105
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
lea ecx, [eax + 4]
call fcn.004a0e99
push eax
push 0x52d714
push ebx
call fcn.0045425f
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
push dword [eax + 0x10]
push 0x52d704
push ebx
call fcn.0045425f
push 0x52c7d8
push ebx
call fcn.0045425f
add esp, 0x20
inc edi
cmp edi, dword [esi + 0xc]
jne 0x4aa975
push 0x52c4c8
push ebx
call fcn.0045425f
pop ecx
pop ecx
cmp dword [ebp + 0x5c], 1
jne 0x4aa9df
mov ecx, 0x101
jmp 0x4aae13
call fcn.00466ca2
test esi, esi
je 0x4aa9f0
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
cmp dword [ebp + 0x50], 0
jne 0x4abf41
mov ecx, ebx
call fcn.00456180
xor al, al
lea esp, [ebp - 0xac]
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4
cmp esi, 0xc
je 0x4abbee
cmp esi, 0xd
je 0x4abbee
cmp esi, 0x22
je 0x4abbee
mov eax, dword [ebp + 0x58]
push 0xa
pop esi
cmp eax, esi
jne 0x4aaae7
push 0x52d724
xor edi, edi
push ebx
inc edi
call fcn.0045425f
and dword [ebp + 0x70], 0
cmp dword [0x88df44], 0
pop ecx
pop ecx
je 0x4aaad5
mov esi, dword [ebp + 0x70]
mov eax, dword [0x88df3c]
xor edx, edx
shl esi, 2
add eax, esi
mov ecx, dword [eax]
inc edx
push edx
call fcn.0049a86f
mov dword [ebp + 0x5c], eax
test eax, eax
je 0x4aaac7
mov eax, dword [0x88df3c]
lea edx, [esi + eax]
movzx esi, word [edx]
movzx eax, word [edx + 2]
imul esi, esi, 0x18
mov eax, dword [eax*4 + 0x559820]
add esi, dword [eax + 8]
mov cl, byte [esi + 6]
call fcn.004a75d3
test byte [esi + 6], 0x40
mov dword [ebp + 0x48], eax
jne 0x4aaac7
mov ecx, dword [edx]
call fcn.0049a97b
push eax
push dword [ebp + 0x5c]
lea eax, [edi + 0x52d6e8]
push dword [ebp + 0x48]
push dword [esi]
push eax
push ebx
call fcn.0045425f
add esp, 0x18
xor edi, edi
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [0x88df44]
jne 0x4aaa59
push 0x52c4c8
push ebx
call fcn.0045425f
pop ecx
pop ecx
jmp 0x4abf41
cmp eax, 0x11
jne 0x4aab60
call fcn.004b7c53
mov esi, eax
mov ecx, esi
call fcn.0048204e
shrd eax, edx, 0x14
shr edx, 0x14
push edx
push eax
push 0x52d6a0
push ebx
call fcn.0045425f
add esp, 0x10
mov dl, 1
mov ecx, esi
call fcn.00479b79
xor esi, esi
cmp dword [0x56b828], edi
jbe 0x4aaad5
mov eax, dword [0x56b820]
lea edi, [eax + esi*4]
mov ecx, dword [edi]
call fcn.0048204e
mov ecx, dword [edi]
shrd eax, edx, 0x14
shr edx, 0x14
push edx
push eax
call fcn.0049e64a
push eax
push 0x52d678
push ebx
call fcn.0045425f
add esp, 0x14
inc esi
cmp esi, dword [0x56b828]
jb 0x4aab24
jmp 0x4aaad5
cmp eax, 0x12
je 0x4ab603
cmp eax, 0x13
je 0x4ab603
cmp eax, 0x14
je 0x4ab603
cmp eax, 0x15
je 0x4ab603
cmp eax, 0x18
jne 0x4aac6f
cmp dword [ebp + 0x50], edi
je 0x4abf41
xor esi, esi
push esi
push 0x516e10
mov ecx, ebx
call fcn.00454455
push esi
push 0x52d670
mov ecx, ebx
mov dword [ebp + 0x5c], eax
call fcn.00454455
push 1
push esi
push esi
push 0x52d664
mov ecx, ebx
mov edi, eax
call fcn.00454455
push eax
push edi
push esi
push esi
lea ecx, [ebp - 0xa0]
call fcn.0040cbf4
push 8
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
cmp eax, esi
je 0x4aabed
mov dword [eax], 0x52c620
mov dword [eax + 4], ebx
jmp 0x4aabef
xor eax, eax
mov dword [ebx + 0x10], eax
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp + 0x68]
call fcn.00401966
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x50]
push esi
push 1
push esi
lea eax, [ebp + 0x68]
push eax
push 0x4a8e1f
call fcn.00453c64
mov ecx, dword [ebp + 0x68]
mov ebx, eax
cmp ecx, esi
je 0x4aac27
call fcn.00401728
mov edi, dword [ebp + 0x5c]
mov eax, dword [ebx + 4]
mov byte [eax + 0x169], 1
cmp edi, esi
je 0x4aaa01
push 0x52d660
push edi
call sub.msvcrt.dll_strstr
pop ecx
pop ecx
test eax, eax
je 0x4aac5f
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aac52
sub eax, edx
push esi
push eax
jmp 0x4aac61
push esi
push esi
mov ecx, dword [ebx + 4]
push edi
call fcn.004511e3
jmp 0x4aaa01
cmp eax, 0x1d
jne 0x4aae1f
mov al, byte [ebx + 0x214]
shr al, 3
not al
mov ecx, ebx
test al, 1
je 0x4aa9fc
push 0
push 0x52d658
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4aae0e
push edi
push 0x52d650
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aacbb
xor esi, esi
jmp 0x4aae0e
push edi
push 0x52d64c
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aacd4
xor esi, esi
inc esi
jmp 0x4aae0e
push edi
push 0x511ce0
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aacec
push 2
jmp 0x4aae0d
push edi
push 0x52d640
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad04
push 3
jmp 0x4aae0d
push edi
push 0x52d638
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad1c
push 4
jmp 0x4aae0d
push edi
push 0x52d62c
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad34
push 5
jmp 0x4aae0d
push edi
push 0x515494
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad4c
push 6
jmp 0x4aae0d
push edi
push 0x52d624
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad64
push 7
jmp 0x4aae0d
push edi
push 0x52d61c
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad7c
push 8
jmp 0x4aae0d
push edi
push 0x52d610
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aad91
push 9
jmp 0x4aae0d
push edi
push 0x52d608
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aada6
push 0x12
jmp 0x4aae0d
push edi
push 0x52d5fc
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aadbb
push 0xb
jmp 0x4aae0d
push edi
push 0x52d5f8
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aadd0
push 0xc
jmp 0x4aae0d
push edi
push 0x52d5ec
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aade5
push 0xf
jmp 0x4aae0d
push edi
push 0x516fb4
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aadfa
push 0xd
jmp 0x4aae0d
push edi
push 0x52d5dc
call sub.msvcrt.dll__strcmpi
pop ecx
pop ecx
test eax, eax
jne 0x4aae0e
push 0xe
pop esi
mov ecx, 0x118
mov edx, esi
call fcn.004c9f62
jmp 0x4abf41
cmp eax, 0x20
jne 0x4aae34
cmp dword [ebp + 0x60], edi
setne cl
call fcn.00436527
jmp 0x4abf41
cmp eax, 0x1e
jne 0x4aaf20
test byte [0x88dfb0], 2
jne 0x4aae9d
or dword [0x88dfb0], 2
mov dword [0x88df64], 0x52d5cc
mov dword [0x88df68], 0x88fb44
mov dword [0x88df6c], 0x52d5bc
mov dword [0x88df70], 0x88fc3c
mov dword [0x88df74], 0x52d5a8
mov dword [0x88df78], 0x88fd34
mov dword [0x88df7c], 0x52d590
mov dword [0x88df80], 0x88fe2c
push 0x52d578
push ebx
mov dword [ebp + 0x68], 1
call fcn.0045425f
pop ecx
pop ecx
mov esi, 0x88df64
push dword [esi]
mov eax, dword [ebp + 0x68]
mov edi, dword [esi + 4]
lea eax, [eax + 0x52d56c]
push eax
push ebx
call fcn.0045425f
xor eax, eax
add esp, 0xc
inc eax
and dword [ebp + 0x70], 0
mov ecx, dword [ebp + 0x70]
push dword [edi + ecx*8 + 4]
lea eax, [eax + 0x52d564]
push dword [edi + ecx*8]
push eax
push ebx
call fcn.0045425f
add esp, 0x10
xor eax, eax
inc dword [ebp + 0x70]
cmp dword [ebp + 0x70], 0x1f
jl 0x4aaed5
push 0x52c4c8
push ebx
call fcn.0045425f
and dword [ebp + 0x68], 0
add esi, 8
cmp esi, 0x88df84
pop ecx
pop ecx
jl 0x4aaeb6
push 0x52c7d8
jmp 0x4aaada
cmp eax, 0x1f
jne 0x4aaf40
call fcn.0042663c
call fcn.004af005
mov ecx, eax
call fcn.004aefa9
call fcn.0049b96a
jmp 0x4abf41
cmp eax, 0x21
jne 0x4aafc3
push 0x512b50
push 0x52d544
push ebx
call fcn.0045425f
and byte [ebp - 7], 0xfe
and dword [ebp - 0x10], 0
and dword [ebp - 0xc], 0
add esp, 0xc
push dword [ebx + 0x1d4]
lea eax, [ebx + 0x1bc]
push eax
push dword [ebx + 0x228]
mov edi, 0x50fa3c
lea edx, [ebp - 0x14]
lea ecx, [ebp + 0x68]
mov dword [ebp - 0x14], edi
mov byte [ebp - 8], 0
call fcn.004a6e3d
lea ecx, [ebp + 0x68]
call fcn.004a0e99
push eax
push ebx
call fcn.0045425f
push 0x512b5c
push ebx
call fcn.0045425f
add esp, 0x10
lea ecx, [ebp + 0x68]
call fcn.004a0c7d
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], edi
call fcn.0040ba32
jmp 0x4abf41
cmp eax, 9
jne 0x4ab08e
mov edi, 0x52d540
push edi
mov ecx, ebx
call fcn.0045449c
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x4abf41
push 0
push 0x5156ec
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4abf41
push 1
push 0x28
mov edx, eax
lea ecx, [ebp - 0x68]
call fcn.00428acd
test al, al
je 0x4abf41
lea ecx, [ebp - 0x68]
call fcn.004a342e
mov esi, eax
test esi, esi
je 0x4abf41
and dword [ebp + 0x70], 0
cmp dword [ebp + 0x6c], 0
jle 0x4abf41
push dword [ebp + 0x70]
mov ecx, ebx
push edi
call fcn.00454455
test eax, eax
je 0x4ab07e
push eax
call sub.msvcrt.dll_atoi
pop ecx
mov ecx, dword [esi + 0x168]
cmp eax, dword [ecx + 8]
jae 0x4ab07e
cmp dword [ebp + 0x60], 3
ja 0x4ab07e
mov ecx, dword [ebp + 0x60]
push 1
shl ecx, 2
push ecx
push eax
mov ecx, esi
call fcn.0040ff3a
push 0xffffffffffffffff
push 0
mov ecx, esi
call fcn.0041b516
push 0
xor edx, edx
xor ecx, ecx
call fcn.004a42be
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x6c]
jl 0x4ab030
jmp 0x4abf41
cmp eax, 0x23
jne 0x4ab1fa
push 0x52d52c
push ebx
call fcn.0045425f
and dword [ebp + 0x70], 0
xor edi, edi
pop ecx
inc edi
cmp dword [0x88ee24], 0
pop ecx
jbe 0x4ab131
mov eax, dword [0x88ee1c]
mov ecx, dword [ebp + 0x70]
mov esi, dword [eax + ecx*4]
push 0
push 0
mov ecx, esi
call fcn.004ba732
test al, al
jne 0x4ab123
lea ecx, [esi + 0x88]
call fcn.004a0e99
lea ecx, [esi + 0x8c]
mov dword [ebp + 0x5c], eax
call fcn.004a0e99
lea ecx, [esi + 0x84]
mov dword [ebp + 0x48], eax
call fcn.004a0e99
push dword [ebp + 0x5c]
push dword [ebp + 0x48]
push eax
lea eax, [esi + 0x70]
push eax
lea eax, [esi + 0x5c]
push eax
push dword [esi + 0x58]
lea eax, [edi + 0x52d4a0]
push dword [esi + 0x54]
push dword [esi + 0x50]
push dword [esi + 0x4c]
push esi
push eax
push ebx
call fcn.0045425f
add esp, 0x30
xor edi, edi
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [0x88ee24]
jb 0x4ab0b4
and dword [ebp + 0x70], 0
call fcn.004bc237
cmp dword [eax + 8], 0
jbe 0x4ab1f0
call fcn.004bc237
mov eax, dword [eax]
mov ecx, dword [ebp + 0x70]
mov esi, dword [eax + ecx*4]
push 0
push 0
mov ecx, esi
call fcn.004ba522
test al, al
jne 0x4ab1dc
lea eax, [esi + 0x3c]
push eax
mov ecx, 0x88ee1c
mov dword [ebp + 0x40], eax
call fcn.004bb6af
test eax, eax
jge 0x4ab1dc
lea ecx, [esi + 0x90]
call fcn.004a0e99
mov dword [ebp + 0x5c], eax
mov al, byte [esi + 0x34]
shr al, 4
and al, 1
lea ecx, [esi + 0x94]
mov byte [ebp + 0x57], al
call fcn.004a0e99
lea ecx, [esi + 0x8c]
mov dword [ebp + 0x48], eax
call fcn.004a0e99
push dword [ebp + 0x5c]
movzx ecx, byte [ebp + 0x57]
push ecx
push dword [ebp + 0x48]
push eax
lea eax, [esi + 0x78]
push eax
lea eax, [esi + 0x64]
push eax
push dword [esi + 0x60]
lea eax, [edi + 0x52d418]
push dword [esi + 0x5c]
push dword [esi + 0x58]
push dword [esi + 0x54]
push dword [ebp + 0x40]
push eax
push ebx
call fcn.0045425f
add esp, 0x34
xor edi, edi
inc dword [ebp + 0x70]
call fcn.004bc237
mov ecx, dword [ebp + 0x70]
cmp ecx, dword [eax + 8]
jb 0x4ab144
push 0x510d48
jmp 0x4aaada
cmp eax, 0x24
jne 0x4ab341
mov esi, 0x52d40c
push esi
mov ecx, ebx
call fcn.0045449c
cmp eax, edi
mov dword [ebp + 0x68], eax
jle 0x4ab2e4
mov eax, dword [ebx + 0x110]
cmp eax, 6
je 0x4aa9fa
cmp eax, 2
je 0x4aa9fa
mov eax, dword [ebx + 0x114]
and eax, 0x40
xor ecx, ecx
or eax, ecx
je 0x4aa9fa
cmp dword [ebp + 0x68], edi
mov dword [ebp + 0x70], edi
jle 0x4abf41
push dword [ebp + 0x70]
mov ecx, ebx
push esi
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4ab2d0
lea ecx, [ebp - 4]
call fcn.004ba443
push edi
lea ecx, [ebp - 4]
call fcn.004ba496
test al, al
je 0x4ab28f
test dword [0x568090], 0x8000000
je 0x4ab2c8
lea eax, [ebp - 4]
push eax
push 0x52d3d8
jmp 0x4ab2c1
lea eax, [ebp - 4]
push eax
lea ecx, [ebx + 0x1f8]
call fcn.004ba452
test al, al
jne 0x4ab2ac
lea ecx, [ebp - 4]
call fcn.004bc502
jmp 0x4ab2c8
test dword [0x568090], 0x8000000
je 0x4ab2c8
lea eax, [ebp - 4]
push eax
push 0x52d3b0
call fcn.004263aa
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.00466ca2
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x68]
jl 0x4ab252
jmp 0x4abf41
lea esi, [ebx + 0x1f8]
mov ecx, esi
call fcn.004bc502
test dword [0x568090], 0x8000000
mov byte [ebp + 0x67], al
je 0x4ab31d
test al, al
mov eax, 0x52d3a8
jne 0x4ab30e
mov eax, 0x52d39c
push esi
push eax
push 0x52d380
call fcn.004263aa
add esp, 0xc
cmp byte [ebp + 0x67], 0
je 0x4aa9fa
mov dword [ebx + 0x110], edi
mov dword [ebx + 0x114], edi
mov dword [ebx + 0x118], edi
mov dword [ebp + 0x34], edi
jmp 0x4abf41
cmp eax, 0x26
jne 0x4ab3cb
push 0x52d374
push ebx
call fcn.0045425f
pop ecx
pop ecx
mov dword [ebp + 0x68], 1
xor esi, esi
lea eax, [ebp + 0x5c]
push eax
mov ecx, 0x88ddec
call fcn.00409044
mov eax, dword [ebp + 0x5c]
cmp esi, dword [eax + 0x38]
jae 0x4aaad5
lea eax, [ebp + 0x48]
push eax
mov ecx, 0x88ddec
call fcn.00409044
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 0x30]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4ab3c8
mov eax, dword [ebp + 0x68]
lea eax, [eax + 0x52d370]
push eax
push ebx
call fcn.0045425f
and dword [ebp + 0x68], 0
pop ecx
pop ecx
push dword [edi + 0x60]
lea ecx, [edi + 0x24]
push dword [edi + 0x34]
call fcn.004a0ff9
push eax
push 0x52d364
push ebx
call fcn.0045425f
add esp, 0x14
inc esi
jmp 0x4ab360
cmp eax, 0x25
jne 0x4ab43d
push edi
push 0x5156ec
mov ecx, ebx
call fcn.00454455
mov esi, eax
cmp esi, edi
je 0x4abf41
push 1
push 0x28
mov edx, esi
lea ecx, [ebp - 0x68]
call fcn.00428acd
test al, al
je 0x4abf41
mov ecx, esi
call fcn.004a4ffc
mov edi, eax
test edi, edi
je 0x4abf41
push 0
push 0x52d35c
mov ecx, ebx
call fcn.00454455
mov esi, eax
test esi, esi
je 0x4abf41
call fcn.0047cfd9
push esi
mov ecx, edi
call fcn.0041ca31
call fcn.0047cff8
jmp 0x4abf41
cmp eax, 0x27
jne 0x4abf41
push 0
push 0x52d358
mov ecx, ebx
call fcn.00454455
push 0
mov esi, eax
push 0x527818
mov ecx, ebx
mov dword [ebp + 0x5c], esi
call fcn.00454455
mov edi, eax
mov dword [ebp + 0x48], edi
test esi, esi
je 0x4ab5f9
cmp byte [esi], 0
sete al
test al, al
jne 0x4ab5f9
test edi, edi
je 0x4ab5f9
cmp byte [edi], al
sete al
test al, al
jne 0x4ab5f9
lea ecx, [ebp + 0x6c]
call fcn.004a0e93
cmp dword [ebx + 0x110], 1
je 0x4ab4e1
push 0x52d310
lea ecx, [ebp + 0x6c]
call fcn.004a0eb9
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
call fcn.00466ca2
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
push eax
push 9
mov ecx, ebx
call fcn.004a9596
lea ecx, [ebp + 0x6c]
call fcn.004a0c7d
jmp 0x4aaa01
lea edx, [ebp + 0x6c]
mov ecx, esi
call fcn.004a832c
test al, al
jne 0x4ab509
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
call fcn.00466ca2
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
push eax
push 6
jmp 0x4ab4cd
lea edx, [ebp + 0x6c]
mov ecx, edi
call fcn.004a8341
test al, al
jne 0x4ab531
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
call fcn.00466ca2
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
push eax
push 7
jmp 0x4ab4cd
cmp dword [0x88df28], 0
je 0x4ab564
push 0x52d2c8
lea ecx, [ebp + 0x6c]
call fcn.004a0eb9
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
call fcn.00466ca2
lea ecx, [ebp + 0x6c]
call fcn.004a0e99
push eax
push 8
jmp 0x4ab4cd
xor ecx, ecx
xor edx, edx
inc ecx
call fcn.0049c8cf
mov edi, 0x516a00
mov esi, eax
push edi
push 0x51acfc
mov ecx, esi
call fcn.0049c6b6
push dword [ebp + 0x5c]
mov ecx, esi
push 0x51ada4
call fcn.0049c6b6
push dword [ebp + 0x48]
mov ecx, esi
push 0x51ad8c
call fcn.0049c6b6
push edi
push 0x51adbc
mov ecx, esi
call fcn.0049c6b6
lea eax, [ebx + 0x128]
push eax
mov ecx, esi
call fcn.0049c9c7
cmp eax, 1
jne 0x4ab5dc
mov dword [0x88df28], ebx
call fcn.00466ca2
mov edx, esi
mov ecx, 0x101
call fcn.004c9f62
jmp 0x4ab4d4
call fcn.00466ca2
test esi, esi
je 0x4ab5ed
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov ecx, ebx
call fcn.00456180
jmp 0x4ab4d4
call fcn.00466ca2
jmp 0x4aa9fa
or dword [ebp + 0x60], 0xffffffff
or dword [ebp + 0x70], 0xffffffff
push edi
push 0x52d2bc
mov ecx, ebx
mov dword [ebp + 0x6c], edi
mov dword [ebp - 0x30], edi
mov byte [ebp - 0x48], 0
mov byte [ebp - 0x50], 0
mov byte [ebp - 0x38], 0
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x28], edi
mov dword [ebp - 0x20], edi
mov dword [ebp + 0x24], edi
mov byte [ebp + 0x20], 0
mov byte [ebp - 0x40], 0
mov byte [ebp - 0x1c], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 0x24], 0
mov dword [ebp - 0x18], edi
call fcn.00454455
cmp eax, edi
jne 0x4ab66b
push edi
push 0x52d2b4
mov ecx, ebx
call fcn.00454455
cmp eax, edi
je 0x4ab682
cmp dword [ebp + 0x58], 0x14
jne 0x4ab678
mov dword [ebp + 0x6c], 0x800
push eax
call sub.msvcrt.dll__atoi64
pop ecx
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x50], edi
je 0x4ab68b
or dword [ebp + 0x6c], 1
xor esi, esi
push esi
push 0x51c450
mov ecx, ebx
call fcn.00454455
mov edi, eax
cmp edi, esi
je 0x4ab6e6
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab6a3
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 2
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab6c0
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp - 0x30], eax
xor esi, esi
push esi
push 0x52d2a8
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4ab71c
or dword [ebp + 0x6c], 4
push eax
lea ecx, [ebp + 0x50]
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x48], al
call fcn.004a0c7d
push esi
push 0x52d298
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4ab752
or dword [ebp + 0x6c], 8
push eax
lea ecx, [ebp + 0x50]
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x50], al
call fcn.004a0c7d
push esi
push 0x51c484
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4ab788
or dword [ebp + 0x6c], 0x10
push eax
lea ecx, [ebp + 0x50]
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x38], al
call fcn.004a0c7d
push esi
push 0x515838
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4ab79d
or dword [ebp + 0x6c], 0x20
push esi
push 0x52d28c
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4ab7b8
push eax
call sub.msvcrt.dll__atoi64
pop ecx
mov dword [ebp + 0x70], eax
push esi
push 0x5112b8
mov ecx, ebx
call fcn.00454455
mov edi, eax
cmp edi, esi
je 0x4ab812
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab7ce
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 0x2000
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab7ee
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x5c], eax
push 0
push 0x52d284
mov ecx, ebx
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4ab86a
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab829
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 1
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab846
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x48], eax
push 0
push 0x511dc8
mov ecx, ebx
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4ab8c2
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab881
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 2
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab89e
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x40], eax
push 0
push 0x51c164
mov ecx, ebx
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4ab91a
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab8d9
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 4
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab8f6
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x30], eax
push 0
push 0x52d278
mov ecx, ebx
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4ab972
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab931
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 8
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab94e
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x28], eax
xor esi, esi
push esi
push 0x511d78
mov ecx, ebx
call fcn.00454455
mov edi, eax
cmp edi, esi
je 0x4ab9cd
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab98a
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
or dword [ebp + 0x6c], 0x10
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab9a7
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp - 0x20], eax
xor esi, esi
push esi
push 0x511db4
mov ecx, ebx
call fcn.00454455
mov edi, dword [ebp + 0x6c]
cmp eax, esi
je 0x4ab9f1
push eax
or edi, 0x1000
call sub.msvcrt.dll_atol
pop ecx
mov dword [ebp + 0x24], eax
push esi
push 0x52d268
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4aba26
push eax
lea ecx, [ebp + 0x50]
or edi, 0x20
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp + 0x20], al
call fcn.004a0c7d
push esi
push 0x52d25c
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4aba5b
push eax
lea ecx, [ebp + 0x50]
or edi, 0x40
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x40], al
call fcn.004a0c7d
push esi
push 0x5120a8
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4aba93
push eax
lea ecx, [ebp + 0x50]
or edi, 0x80
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x1c], al
call fcn.004a0c7d
push esi
push 0x52d24c
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4abacb
push eax
lea ecx, [ebp + 0x50]
or edi, 0x100
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x28], al
call fcn.004a0c7d
push esi
push 0x52d240
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4abb03
push eax
lea ecx, [ebp + 0x50]
or edi, 0x200
call fcn.004a0e73
lea ecx, [ebp + 0x50]
call fcn.004a06d2
test eax, eax
setg al
lea ecx, [ebp + 0x50]
mov byte [ebp - 0x24], al
call fcn.004a0c7d
push esi
push 0x52d230
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4abb24
push eax
or edi, 0x400
call sub.msvcrt.dll_atol
pop ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x58]
cmp eax, 0x12
jne 0x4abb5f
mov edx, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x60]
push edi
push dword [ebp - 0x38]
push dword [ebp - 0x50]
push dword [ebp - 0x48]
push dword [ebp - 0x30]
call fcn.004992da
cmp dword [ebp + 0x60], 0xffffffff
jne 0x4abf41
cmp eax, 0xffffffff
je 0x4abf41
push eax
push 0x52d21c
jmp 0x4abbc1
cmp eax, 0x13
jne 0x4abb7a
mov ecx, dword [ebp + 0x60]
cmp ecx, 0xffffffff
je 0x4abf41
call fcn.004991ff
jmp 0x4abf41
cmp eax, 0x14
jne 0x4abbcf
push edi
push dword [ebp + 0x60]
mov edx, dword [ebp + 0x5c]
push dword [ebp - 0x18]
mov ecx, dword [ebp + 0x70]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x1c]
push dword [ebp - 0x40]
push dword [ebp + 0x20]
push dword [ebp + 0x24]
push dword [ebp - 0x20]
push dword [ebp + 0x28]
push dword [ebp + 0x30]
push dword [ebp + 0x40]
push dword [ebp + 0x48]
call fcn.00497ad9
cmp eax, dword [ebp + 0x70]
je 0x4abf41
push eax
push 0x52d204
push ebx
call fcn.0045425f
add esp, 0xc
jmp 0x4abf41
cmp eax, 0x15
jne 0x4abf41
mov ecx, dword [ebp + 0x70]
cmp ecx, 0xffffffff
je 0x4abf41
call fcn.00497940
jmp 0x4abf41
push edi
push 0x52d1f4
mov ecx, ebx
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x70], edi
call fcn.00454455
cmp eax, edi
je 0x4abc0f
push eax
call sub.msvcrt.dll_atoi
pop ecx
mov dword [ebp + 0x6c], eax
push 0
push 0x511214
mov ecx, ebx
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4abc63
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4abc26
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4abc3f
sub eax, edx
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x70], eax
cmp dword [ebp + 0x58], 0xc
jne 0x4abd16
push 0
push 0x52d1f0
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4abc8e
push eax
call sub.msvcrt.dll_atoi
pop ecx
mov byte [ebp + 0x5c], 1
test eax, eax
jne 0x4abc92
mov byte [ebp + 0x5c], 0
mov edx, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x6c]
call fcn.004a931a
mov esi, eax
test esi, esi
je 0x4aa9fa
cmp dword [ebp + 0x60], 2
push 4
pop edi
jne 0x4abcb4
push 0x24
jmp 0x4abcbc
cmp dword [ebp + 0x60], 1
jne 0x4abcbd
push 0x64
pop edi
mov ecx, dword [ebp + 0x38]
call fcn.0049e64a
push eax
push dword [ebp + 0x5c]
lea eax, [ebp + 0x68]
push esi
push edi
push eax
mov ecx, ebx
call fcn.004a99cf
mov dl, 1
mov ecx, esi
call fcn.00479b79
mov eax, dword [ebp + 0x68]
test eax, eax
je 0x4abd09
xor ecx, ecx
cmp word [eax], cx
sete cl
test cl, cl
jne 0x4abd09
lea ecx, [ebp + 0x68]
call fcn.004a0ff9
push eax
push 0x52d1e0
push ebx
call fcn.0045425f
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.004a0c7d
jmp 0x4abf41
cmp dword [ebp + 0x58], 0xd
je 0x4abd26
cmp dword [ebp + 0x58], 0x22
jne 0x4abf41
or dword [ebp + 0x5c], 0xffffffff
push 0
push 0x52d2bc
mov ecx, ebx
call fcn.00454455
test eax, eax
jne 0x4abd4d
push eax
push 0x52d2b4
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4abd57
push eax
call sub.msvcrt.dll__atoi64
pop ecx
mov dword [ebp + 0x5c], eax
push 0
push 0x52d1d0
mov ecx, ebx
call fcn.00454455
mov edi, eax
test edi, edi
je 0x4abdf1
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4abd72
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4abd8b
sub eax, esi
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov esi, eax
lea eax, [ebp + 0x48]
push eax
mov ecx, 0x88ddec
call fcn.00409044
mov ecx, esi
call fcn.0049e64a
mov ecx, dword [ebp + 0x48]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004086ab
mov ecx, dword [ebp - 0x20]
mov eax, ecx
neg eax
sbb eax, eax
test eax, fcn.00466ca2
je 0x4abde8
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
mov dword [ebp + 0x38], eax
test ecx, ecx
je 0x4abdf1
call fcn.00406bc3
cmp dword [ebp + 0x50], 0
jne 0x4abe52
push 0
push 0x516e60
mov ecx, ebx
call fcn.00454455
mov edi, eax
mov dword [ebp + 0x50], edi
test edi, edi
je 0x4aa9fa
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4abe15
sub eax, edx
cmp eax, 0x400
ja 0x4aa9fa
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4abe2e
sub eax, edx
lea eax, [eax + eax + 2]
call fcn.00401000
mov ecx, edi
mov esi, esp
call fcn.0049e604
push esi
call fcn.004c9d65
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], 0
je 0x4aa9fa
mov edx, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x6c]
call fcn.004a931a
mov edi, eax
test edi, edi
je 0x4aa9fa
push 0xa0
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
test eax, eax
je 0x4abe89
mov ecx, eax
call fcn.00459af9
jmp 0x4abe8b
xor eax, eax
push eax
lea ecx, [ebp + 0x48]
call fcn.0045aa7f
mov esi, dword [ebp + 0x48]
lea eax, [ebx + 0x1f8]
push eax
lea ecx, [esi + 0x88]
call fcn.004ba47e
mov eax, dword [ebp + 0x5c]
mov byte [esi + 0x66], 1
test eax, eax
jl 0x4abeb7
mov dword [esi + 0x70], eax
cmp dword [ebp + 0x38], 0
je 0x4abec8
push dword [ebp + 0x38]
lea ecx, [esi + 8]
call fcn.004a101e
push edi
lea ecx, [ebp + 0x5c]
call fcn.004a0fd9
push dword [ebp + 0x5c]
lea ecx, [esi + 4]
call fcn.004a101e
lea ecx, [ebp + 0x5c]
call fcn.004a0c7d
mov dl, 1
mov ecx, edi
call fcn.00479b79
mov ecx, dword [ebp + 0x50]
call fcn.0044861f
push eax
lea ecx, [ebp + 0x68]
call fcn.004a0e73
cmp dword [ebp + 0x58], 0x22
mov ecx, esi
sete al
mov byte [esi + 0x74], al
lea eax, [ebp + 0x68]
push eax
call fcn.00403e46
test al, al
jne 0x4abf32
mov ecx, ebx
call fcn.00456180
lea ecx, [ebp + 0x68]
call fcn.004a0c7d
mov ecx, esi
call fcn.004035c7
jmp 0x4aaa01
lea ecx, [ebp + 0x68]
call fcn.004a0c7d
mov ecx, esi
call fcn.004035c7
xor esi, esi
push esi
push 0x52d1c4
mov ecx, ebx
call fcn.00454455
mov edi, 0x52d1bc
test eax, eax
je 0x4ac48f
push esi
push edi
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4ac48f
push 0x52d1a8
push ebx
mov byte [ebp + 0x47], 0
call fcn.0045425f
pop ecx
pop ecx
mov dword [ebp + 0x68], esi
cmp dword [0x88de2c], esi
je 0x4ac47d
mov eax, dword [0x88de24]
mov ecx, dword [ebp + 0x68]
mov edi, dword [eax + ecx*4]
test byte [edi + 0x1cc], 0x40
mov dword [ebp + 0x20], edi
je 0x4ac46b
push dword [edi + 0x4d8]
lea eax, [ebp - 0x34]
push 0x51a2fc
push 9
push eax
call fcn.0049f8ba
mov eax, dword [ebx + 0x114]
and eax, 0xc00
xor ecx, ecx
add esp, 0x10
xor esi, esi
or eax, ecx
jne 0x4abffb
mov ecx, dword [ebp + 0x38]
cmp ecx, esi
je 0x4ac46b
mov eax, dword [edi + 0x47c]
cmp eax, esi
je 0x4ac46b
call fcn.0042a25c
test eax, eax
jne 0x4ac46b
mov eax, dword [edi + 0x168]
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x60], esi
cmp dword [eax + 8], esi
je 0x4ac46b
mov dword [ebp + 0x70], esi
mov eax, dword [ebp + 0x50]
mov esi, dword [eax]
push dword [ebp + 0x60]
add esi, dword [ebp + 0x70]
mov ecx, edi
call fcn.00410191
test byte [esi + 0x2e], 0x10
je 0x4ac049
test eax, eax
je 0x4ac043
push 6
push 0x52d1a0
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4ac092
test byte [esi + 0x44], 2
jne 0x4ac092
push dword [ebp + 0x60]
lea eax, [ebp - 0x10]
push eax
lea ecx, [edi + 0x1c]
call fcn.00435009
cmp dword [ebp - 8], 0
lea ecx, [ebp - 0x10]
jne 0x4ac085
call fcn.004345be
lea ecx, [ebp - 0x10]
call fcn.004a0bd2
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x60]
add dword [ebp + 0x70], 0x7c
cmp ecx, dword [eax + 8]
jne 0x4ac013
jmp 0x4ac46b
call fcn.004345be
lea ecx, [ebp - 0x10]
call fcn.004a0bd2
lea eax, [ebp + 0x47]
push eax
mov ecx, ebx
call fcn.00455105
mov eax, dword [edi + 0x38c]
mov esi, dword [edi + 0x388]
mov ecx, edi
mov dword [ebp - 0x40], eax
call fcn.0041183f
mov eax, dword [eax]
test eax, eax
jne 0x4ac0be
mov eax, 0x517834
push eax
push dword [ebp - 0x40]
lea eax, [ebp - 0x34]
push esi
push eax
push edi
mov ecx, edi
call fcn.0040f54c
push eax
push 0x52d148
push ebx
call fcn.0045425f
mov eax, dword [ebp + 0x50]
and dword [ebp + 0x58], 0
add esp, 0x20
mov byte [ebp + 0x57], 0
cmp dword [eax + 8], 0
je 0x4ac45e
and dword [ebp + 0x60], 0
mov eax, dword [ebp + 0x50]
mov esi, dword [eax]
push dword [ebp + 0x58]
add esi, dword [ebp + 0x60]
mov ecx, edi
call fcn.00410191
test byte [esi + 0x2e], 0x10
je 0x4ac448
test eax, eax
je 0x4ac12b
push 6
push 0x52d1a0
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4ac135
test byte [esi + 0x44], 2
je 0x4ac448
mov ecx, esi
call fcn.0040cd6e
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x57]
push eax
mov ecx, ebx
call fcn.00455105
lea ecx, [ebp + 0x6c]
call fcn.004a0e93
lea ecx, [ebx + 0x128]
call fcn.0049cb80
test al, al
je 0x4ac1d4
push dword [esi + 0x24]
mov eax, dword [edi + 0x168]
mov eax, dword [eax + 0x1c]
push 0x515b7c
push eax
lea eax, [ebp + 0x28]
push 0x5181c4
push eax
call fcn.004a1618
add esp, 0x14
push dword [eax]
lea ecx, [ebp + 0x6c]
call fcn.004a101e
lea ecx, [ebp + 0x28]
call fcn.004a0c7d
lea ecx, [ebp + 0x6c]
call fcn.004a0ff9
push eax
push dword [ebp + 0x58]
mov ecx, edi
call fcn.00410191
push eax
mov ecx, edi
call fcn.0040d0e2
movzx eax, al
push eax
push dword [esi + 0xc]
xor eax, eax
push dword [esi + 8]
push eax
push dword [ebp + 0x58]
push dword [esi + 0x24]
push 0x52d0e0
push ebx
call fcn.0045425f
add esp, 0x28
jmp 0x4ac207
push dword [ebp + 0x58]
mov ecx, edi
call fcn.00410191
push eax
mov ecx, edi
call fcn.0040d0e2
movzx eax, al
push eax
push dword [esi + 0xc]
xor eax, eax
push dword [esi + 8]
push eax
push dword [ebp + 0x58]
push dword [esi + 0x24]
push 0x52d088
push ebx
call fcn.0045425f
add esp, 0x24
cmp dword [ebp + 0x5c], 0
mov byte [ebp + 0x56], 0
je 0x4ac22d
lea eax, [ebp + 0x56]
push eax
mov ecx, ebx
call fcn.00455105
push dword [ebp + 0x5c]
push 0x52d074
push ebx
call fcn.0045425f
add esp, 0xc
cmp dword [esi + 0x50], 0
je 0x4ac24f
lea eax, [ebp + 0x56]
push eax
mov ecx, ebx
call fcn.00455105
push dword [esi + 0x50]
push 0x52d064
push ebx
call fcn.0045425f
add esp, 0xc
cmp word [esi + 0x54], 0
je 0x4ac280
cmp word [esi + 0x56], 0
je 0x4ac280
lea eax, [ebp + 0x56]
push eax
mov ecx, ebx
call fcn.00455105
movzx eax, word [esi + 0x56]
push eax
movzx eax, word [esi + 0x54]
push eax
push 0x52d04c
push ebx
call fcn.0045425f
add esp, 0x10
cmp dword [esi + 0x5c], 0
jne 0x4ac28c
cmp dword [esi + 0x58], 0
je 0x4ac2ab
lea eax, [ebp + 0x56]
push eax
mov ecx, ebx
call fcn.00455105
push dword [esi + 0x58]
push dword [esi + 0x5c]
push 0x52d038
push ebx
call fcn.0045425f
add esp, 0x10
push 0x52d030
push ebx
call fcn.0045425f
pop ecx
pop ecx
push dword [ebp + 0x58]
lea eax, [ebp + 0x14]
push eax
lea ecx, [edi + 0x1c]
call fcn.00435009
and dword [ebp + 0x3c], 0
cmp dword [ebp + 0x1c], 0
jbe 0x4ac42d
and dword [ebp + 0x70], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x70]
lea edi, [eax + ecx]
mov ecx, edi
call fcn.004a0ff9
mov ecx, eax
call fcn.004b6c8e
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x57]
push eax
mov ecx, ebx
call fcn.00455105
cmp dword [ebp + 0x5c], 0
mov eax, dword [ebp + 0x5c]
jne 0x4ac30c
mov eax, dword [0x559a20]
mov dword [ebp + 0x5c], eax
mov eax, dword [edi + 4]
lea ecx, [edi + 0xc]
lea edx, [ebp + 0x48]
mov dword [ebp + 0x24], eax
mov eax, dword [ecx]
push edx
call dword [eax + 8]
push dword [ebp + 0x5c]
lea ecx, [ebp + 0x48]
push 1
push 0
push dword [ebp + 0x24]
call fcn.004a0e99
push eax
xor eax, eax
push eax
push dword [ebp + 0x58]
mov ecx, edi
call fcn.004a0ff9
mov ecx, eax
call fcn.004b696a
push eax
push 0x52cfd0
push ebx
call fcn.0045425f
add esp, 0x28
lea ecx, [ebp + 0x48]
call fcn.004a0c7d
lea eax, [ebp + 0x67]
push eax
mov ecx, ebx
mov byte [ebp + 0x67], 0
call fcn.00455105
cmp byte [edi + 0x28], 5
je 0x4ac379
mov eax, dword [edi + 0x30]
jmp 0x4ac37c
mov eax, dword [edi + 0x18]
push eax
push 0x52d074
push ebx
call fcn.0045425f
add esp, 0xc
lea eax, [ebp + 0x67]
push eax
mov ecx, ebx
call fcn.00455105
push dword [esi + 0x50]
push 0x52d064
push ebx
call fcn.0045425f
add esp, 0xc
lea eax, [ebp + 0x67]
push eax
mov ecx, ebx
call fcn.00455105
push dword [edi + 0x40]
push dword [edi + 0x3c]
push 0x52d04c
push ebx
call fcn.0045425f
add esp, 0x10
lea eax, [ebp + 0x67]
push eax
mov ecx, ebx
call fcn.00455105
lea ecx, [edi + 0x24]
mov eax, dword [ecx]
lea edx, [ebp + 0x30]
push edx
call dword [eax + 0x10]
lea ecx, [edi + 0x10]
mov eax, dword [ecx]
lea edx, [ebp + 0x40]
push edx
call dword [eax + 0x10]
push dword [ebp + 0x30]
push dword [ebp + 0x40]
push 0x52d038
push ebx
call fcn.0045425f
add esp, 0x10
lea ecx, [ebp + 0x40]
call fcn.004a0c7d
lea ecx, [ebp + 0x30]
call fcn.004a0c7d
push 0x52d030
push ebx
call fcn.0045425f
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
add dword [ebp + 0x70], 0x68
pop ecx
pop ecx
cmp eax, dword [ebp + 0x1c]
jb 0x4ac2d9
lea ecx, [ebp + 0x14]
call fcn.004345be
lea ecx, [ebp + 0x14]
call fcn.004a0bd2
lea ecx, [ebp + 0x6c]
call fcn.004a0c7d
mov edi, dword [ebp + 0x20]
inc dword [ebp + 0x58]
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x58]
add dword [ebp + 0x60], 0x7c
cmp ecx, dword [eax + 8]
jne 0x4ac0f7
push 0x52cfc8
push ebx
call fcn.0045425f
pop ecx
pop ecx
inc dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
cmp eax, dword [0x88de2c]
jne 0x4abf8e
push 0x52cfc4
push ebx
call fcn.0045425f
pop ecx
pop ecx
jmp 0x4accfe
push esi
push edi
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4acd00
push eax
call sub.msvcrt.dll_atoi
pop ecx
push esi
push 0x529cf8
mov ecx, ebx
mov dword [ebp + 0x5c], esi
call fcn.00454455
cmp eax, esi
je 0x4ac4c5
push eax
call sub.msvcrt.dll_atoi
pop ecx
mov dword [ebp + 0x5c], eax
test byte [ebx + 0x214], 8
je 0x4ac4d4
inc dword [0x56b854]
push esi
push 0x528f20
mov ecx, ebx
call fcn.00454455
cmp eax, esi
je 0x4ac4f9
mov esi, eax
push 3
mov edi, 0x52cfc0
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
mov byte [ebp + 0x57], 1
je 0x4ac4fd
mov byte [ebp + 0x57], 0
xor edi, edi
xor dl, dl
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edi
call fcn.0042490f
push 0x52cfb0
push ebx
call fcn.0045425f
mov eax, dword [ebx + 0x114]
pop ecx
pop ecx
and eax, 0xc00
xor ecx, ecx
or eax, ecx
je 0x4ac55e
xor esi, esi
cmp dword [ebp - 8], edi
je 0x4ac55e
mov eax, dword [ebp - 0x10]
lea eax, [eax + esi*8]
push dword [eax + 4]
push dword [eax]
xor eax, eax
cmp esi, edi
sete al
add eax, 0x52cfa4
push eax
push ebx
call fcn.0045425f
add esp, 0x10
inc esi
cmp esi, dword [ebp - 8]
jne 0x4ac537
push 0x52c4c8
push ebx
call fcn.0045425f
pop ecx
pop ecx
lea ecx, [ebp - 0x10]
call fcn.00424828
push dword [0x88d730]
lea ecx, [ebp - 4]
push dword [0x88d718]
push dword [0x88de2c]
push dword [ebp + 0x5c]
push dword [ebp + 0x34]
call fcn.004bbfbc
lea ecx, [ebp - 4]
mov dword [ebp + 0x58], 1
call fcn.004ba78d
test eax, eax
mov eax, 0x52cf94
jl 0x4ac5b0
mov eax, 0x52cf84
push eax
push ebx
call fcn.0045425f
pop ecx
pop ecx
mov dword [ebp + 0x70], edi
cmp dword [0x88de2c], edi
je 0x4ac8e0
mov eax, dword [0x88de24]
mov ecx, dword [ebp + 0x70]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x3c]
mov eax, dword [eax + 0x114]
and eax, 0xc00
xor ecx, ecx
or eax, ecx
jne 0x4ac60e
cmp dword [ebp + 0x38], ecx
je 0x4ac8ce
mov eax, dword [ebx + 0x47c]
test eax, eax
je 0x4ac8ce
mov ecx, dword [ebp + 0x38]
call fcn.0042a25c
test eax, eax
jne 0x4ac8ce
push 3
lea eax, [ebp - 0x8c]
push eax
mov ecx, ebx
call fcn.00411738
test byte [ebx + 0x4bc], 1
jne 0x4ac62e
mov ecx, ebx
call fcn.0040efe3
mov eax, dword [ebx + 0x4b8]
mov esi, dword [ebp + 0x3c]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x184]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x58]
lea eax, [eax + 0x52d370]
push eax
push esi
call fcn.0045425f
mov eax, dword [esi + 0x184]
and dword [ebp + 0x60], 0
pop ecx
pop ecx
mov dword [ebp - 0x24], eax
push 0
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x47]
push eax
mov ecx, ebx
mov byte [ebp + 0x47], 0
call fcn.0041099f
push dword [ebx + 0x4d8]
lea eax, [ebp + 0x14]
push 0x51a2fc
push 9
push eax
call fcn.0049f8ba
add esp, 0x10
mov ecx, ebx
call fcn.0040dc21
sub esp, 0x14
push 5
pop ecx
mov edi, esp
add esi, 0x128
lea eax, [ebp - 0x74]
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, ebx
call fcn.0040ec5e
mov esi, dword [ebx + 0x47c]
and dword [ebp + 0x68], 0
test esi, esi
je 0x4ac70c
cmp word [esi], 0
je 0x4ac70c
lea eax, [ebp + 0x24]
push eax
mov ecx, 0x88ddec
call fcn.00409044
mov ecx, dword [ebp + 0x24]
push esi
lea eax, [ebp + 0x20]
push eax
call fcn.0040863b
push eax
lea ecx, [ebp + 0x68]
call fcn.00423839
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x4ac6f6
call fcn.00406bc3
cmp dword [ebp + 0x68], 0
je 0x4ac70c
mov eax, dword [ebp + 0x68]
mov eax, dword [eax + 0x34]
mov dword [ebp + 0x5c], eax
mov ecx, 0x510d20
jmp 0x4ac714
mov ecx, 0x510d20
mov dword [ebp + 0x5c], ecx
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x48], eax
test eax, eax
jne 0x4ac725
mov dword [ebp + 0x48], 0x517834
mov eax, dword [ebx + 0x168]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x388]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x38c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x380]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x384]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0x474]
mov dword [ebp + 0x40], eax
test eax, eax
jne 0x4ac765
mov dword [ebp + 0x40], ecx
mov eax, dword [ebx + 0x470]
mov dword [ebp + 0x30], eax
test eax, eax
jne 0x4ac775
mov dword [ebp + 0x30], ecx
mov eax, dword [ebx + 0x1d8]
mov ecx, ebx
mov dword [ebp - 0x1c], eax
call fcn.0041183f
mov eax, dword [eax]
mov dword [ebp + 0x28], eax
test eax, eax
jne 0x4ac795
mov dword [ebp + 0x28], 0x517834
mov eax, dword [ebx + 0x300]
mov esi, dword [ebx + 0x45c]
mov edi, dword [ebx + 0x460]
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 0x304]
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x308]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0x30c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x168]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [ebp + 0x50], eax
mov al, byte [ebx + 0x1be]
mov byte [ebp + 0x67], al
lea eax, [ebp - 0x74]
mov dword [ebp + 0x4c], ecx
push eax
mov ecx, ebx
call fcn.0040dc04
xor ecx, ecx
test al, al
setne cl
lea eax, [ebp + 0x14]
push ecx
push dword [ebp - 0x40]
mov ecx, ebx
push dword [ebp + 0x5c]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push eax
push dword [ebp + 0x48]
push dword [ebp + 0x40]
push dword [ebp + 0x30]
call fcn.0040f430
push edx
push eax
push dword [ebp - 0x1c]
mov ecx, ebx
push dword [ebp - 0x28]
push dword [ebp - 0x84]
push dword [ebp - 0x8c]
push dword [ebp - 0x80]
push dword [ebp - 0x88]
push dword [ebp + 0x28]
call fcn.004124b5
push eax
push esi
push edi
mov ecx, ebx
call fcn.0040f3e2
push eax
push dword [ebp - 0x50]
mov ecx, ebx
push dword [ebp - 0x54]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call fcn.0040ef38
push eax
push dword [ebp + 0x50]
mov ecx, ebx
push dword [ebp + 0x4c]
call fcn.0040f54c
mov esi, dword [ebp + 0x3c]
push eax
movzx eax, byte [ebp + 0x67]
push eax
push ebx
push 0x52cf28
push esi
call fcn.0045425f
mov ecx, dword [ebp + 0x60]
add esp, 0x94
mov dl, 1
call fcn.00479b79
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x17c]
mov edx, dword [ebp - 0x24]
sub eax, edx
push eax
add edx, ecx
push edx
push ebx
lea ecx, [ebp - 4]
call fcn.004bb77e
test al, al
jne 0x4ac8be
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x184], eax
jmp 0x4ac8c2
and dword [ebp + 0x58], 0
mov ecx, dword [ebp + 0x68]
test ecx, ecx
je 0x4ac8ce
call fcn.00406bc3
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [0x88de2c]
jne 0x4ac5c8
lea ecx, [ebp - 4]
call fcn.004bb800
mov edi, dword [ebp + 0x3c]
push 0x52c4c8
push edi
call fcn.0045425f
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.004ba78d
test eax, eax
jl 0x4ac972
push 0x52cf18
push edi
call fcn.0045425f
and dword [ebp + 0x60], 0
pop ecx
xor ebx, ebx
pop ecx
inc ebx
lea ecx, [ebp - 4]
mov esi, ebx
call fcn.004ba78d
test eax, eax
je 0x4ac963
push dword [ebp + 0x60]
lea ecx, [ebp - 4]
call fcn.004bb0e7
test al, al
jne 0x4ac953
push dword [ebp + 0x60]
lea ecx, [ebp - 4]
call fcn.004bb0f1
push eax
lea eax, [esi + 0x52cf14]
push eax
push edi
call fcn.0045425f
add esp, 0xc
xor esi, esi
inc dword [ebp + 0x60]
lea ecx, [ebp - 4]
call fcn.004ba78d
cmp dword [ebp + 0x60], eax
jne 0x4ac926
push 0x52c4c8
push edi
call fcn.0045425f
pop ecx
pop ecx
jmp 0x4ac975
xor ebx, ebx
inc ebx
lea ecx, [ebp - 4]
call fcn.00481666
push eax
push 0x52cf00
push edi
call fcn.0045425f
add esp, 0xc
lea ecx, [ebp - 4]
call fcn.004ba79d
test eax, eax
mov eax, 0x52cef0
jl 0x4ac9a2
mov eax, 0x52cee0
push eax
push edi
call fcn.0045425f
and dword [ebp + 0x50], 0
cmp dword [0x88d718], 0
pop ecx
pop ecx
mov dword [ebp + 0x58], ebx
jbe 0x4acaf9
and dword [ebp + 0x60], 0
mov eax, dword [0x88d710]
mov ecx, dword [ebp + 0x60]
lea esi, [ecx + eax]
mov eax, dword [edi + 0x184]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x58]
lea eax, [eax + 0x52d370]
push eax
push edi
call fcn.0045425f
push dword [esi + 0x14]
mov eax, dword [edi + 0x184]
push dword [esi + 0x10]
mov dword [ebp + 0x48], eax
movzx eax, byte [esi + 8]
push dword [esi + 0xc]
mov ecx, eax
shr ecx, 3
and ecx, ebx
push ecx
mov ecx, eax
shr ecx, 2
and ecx, ebx
push ecx
mov ecx, eax
shr ecx, 1
and ecx, ebx
push ecx
and eax, ebx
push eax
push dword [esi]
push 0x52cec4
push edi
call fcn.0045425f
add esp, 0x30
cmp byte [ebp + 0x57], 0
jne 0x4acaa4
xor eax, eax
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x70], eax
cmp dword [esi + 0x24], eax
jbe 0x4aca9d
mov dword [ebp + 0x68], eax
mov eax, dword [esi + 0x1c]
add eax, dword [ebp + 0x68]
movzx ecx, byte [eax + 0x3c]
mov edx, ecx
shr edx, 1
and ecx, ebx
and edx, ebx
push edx
push ecx
push dword [eax + 0x38]
movzx ecx, word [eax + 0x34]
push ecx
movzx ecx, word [eax + 0x32]
push ecx
movzx ecx, word [eax + 0x30]
push ecx
push dword [eax + 0x2c]
push dword [eax + 0x28]
push dword [eax + 0x24]
push dword [eax + 0x20]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp + 0x5c]
lea eax, [eax + 0x52ce9c]
push eax
push edi
call fcn.0045425f
and dword [ebp + 0x5c], 0
add dword [ebp + 0x68], 0x54
add esp, 0x3c
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [esi + 0x24]
jb 0x4aca3d
push 0x52ce98
jmp 0x4acaa9
push 0x52ce90
push edi
call fcn.0045425f
mov eax, dword [edi + 0x184]
mov edx, dword [ebp + 0x48]
pop ecx
pop ecx
mov ecx, dword [edi + 0x17c]
sub eax, edx
push eax
add edx, ecx
push edx
push dword [esi]
lea ecx, [ebp - 4]
call fcn.004bb846
test al, al
jne 0x4acadf
mov eax, dword [ebp + 0x40]
mov dword [edi + 0x184], eax
jmp 0x4acae3
and dword [ebp + 0x58], 0
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
add dword [ebp + 0x60], 0x2c
cmp eax, dword [0x88d718]
jb 0x4ac9c3
lea ecx, [ebp - 4]
call fcn.004bb800
push 0x52c4c8
push edi
call fcn.0045425f
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.004ba79d
test eax, eax
jl 0x4acb83
push 0x52ce80
push edi
call fcn.0045425f
and dword [ebp + 0x60], 0
pop ecx
pop ecx
lea ecx, [ebp - 4]
mov esi, ebx
call fcn.004ba79d
test eax, eax
je 0x4acb76
push dword [ebp + 0x60]
lea ecx, [ebp - 4]
call fcn.004bb0fb
test al, al
jne 0x4acb66
push dword [ebp + 0x60]
lea ecx, [ebp - 4]
call fcn.004bb105
push eax
lea eax, [esi + 0x52ce7c]
push eax
push edi
call fcn.0045425f
add esp, 0xc
xor esi, esi
inc dword [ebp + 0x60]
lea ecx, [ebp - 4]
call fcn.004ba79d
cmp dword [ebp + 0x60], eax
jne 0x4acb39
push 0x52c4c8
push edi
call fcn.0045425f
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.004ba7ad
test eax, eax
mov eax, 0x52ce68
jl 0x4acb99
mov eax, 0x52ce54
push eax
push edi
call fcn.0045425f
and dword [ebp + 0x70], 0
cmp dword [0x88d730], 0
pop ecx
pop ecx
mov dword [ebp + 0x58], ebx
jbe 0x4acc72
and dword [ebp + 0x68], 0
mov eax, dword [0x88d728]
mov ecx, dword [ebp + 0x68]
lea esi, [ecx + eax]
mov eax, dword [edi + 0x184]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x58]
lea eax, [eax + 0x52d370]
push eax
push edi
call fcn.0045425f
movzx eax, byte [esi + 0x3c]
mov ecx, eax
shr ecx, 1
and ecx, 1
push ecx
and eax, 1
push eax
push dword [esi + 0x38]
movzx eax, byte [esi + 0x24]
push dword [esi + 0x34]
mov ebx, dword [edi + 0x184]
push dword [esi + 0x30]
push dword [esi + 0x28]
push eax
push dword [esi + 0x20]
push dword [esi + 0x1c]
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push 0x52ce20
push edi
call fcn.0045425f
mov eax, dword [edi + 0x184]
mov ecx, dword [edi + 0x17c]
add esp, 0x50
sub eax, ebx
push eax
add ebx, ecx
push ebx
push dword [esi]
lea ecx, [ebp - 4]
call fcn.004bb8e8
test al, al
jne 0x4acc58
mov eax, dword [ebp + 0x5c]
mov dword [edi + 0x184], eax
jmp 0x4acc5c
and dword [ebp + 0x58], 0
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
add dword [ebp + 0x68], 0x44
cmp eax, dword [0x88d730]
jb 0x4acbba
lea ecx, [ebp - 4]
call fcn.004bb800
push 0x52c4c8
push edi
call fcn.0045425f
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.004ba7ad
test eax, eax
jl 0x4accf4
push 0x52ce0c
push edi
call fcn.0045425f
pop ecx
pop ecx
xor esi, esi
lea ecx, [ebp - 4]
inc esi
xor ebx, ebx
call fcn.004ba7ad
test eax, eax
je 0x4acce7
push ebx
lea ecx, [ebp - 4]
call fcn.004bb118
test al, al
jne 0x4accda
push ebx
lea ecx, [ebp - 4]
call fcn.004bb122
push eax
lea eax, [esi + 0x52ce7c]
push eax
push edi
call fcn.0045425f
add esp, 0xc
xor esi, esi
lea ecx, [ebp - 4]
inc ebx
call fcn.004ba7ad
cmp ebx, eax
jne 0x4accb1
push 0x52c4c8
push edi
call fcn.0045425f
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.004bbd01
mov ebx, edi
xor esi, esi
push esi
push 0x52ce04
mov ecx, ebx
call fcn.00454455
test eax, eax
je 0x4acd1b
push dword [ebp + 0x34]
mov ecx, ebx
call fcn.004a92a5
push 0x52c7d8
push ebx
call fcn.0045425f
test byte [ebx + 0x214], 8
pop ecx
pop ecx
jne 0x4acd43
cmp dword [ebp + 0x2c], esi
je 0x4acd43
push 0x52c954
push ebx
call fcn.0045425f
pop ecx
pop ecx
cmp dword [ebp + 0x34], esi
jne 0x4acd54
push 1
mov ecx, ebx
call fcn.004a74b2
mov dword [ebp + 0x34], eax
lea edi, [ebx + 0x17c]
push edi
push dword [ebp + 0x34]
mov ecx, ebx
call fcn.004a8d47
test byte [ebx + 0x214], 8
je 0x4ace33
cmp dword [ebp + 0x2c], esi
je 0x4ace3d
push dword [ebp + 0x2c]
lea eax, [ebp + 0x14]
push 0x52cb88
push eax
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x18], esi
call fcn.004a03fc
add esp, 0xc
mov ecx, edi
call fcn.004a043e
push eax
lea ecx, [ebp + 0x14]
call fcn.004a0288
push 0x52cb84
lea ecx, [ebp + 0x14]
call fcn.004a0288
lea eax, [ebx + 0x1f8]
push eax
lea eax, [ebp + 0x14]
push 0x52cb74
push eax
call fcn.004a03fc
push dword [ebx + 0x224]
push dword [ebx + 0x220]
push 0x51136c
call fcn.0049f991
push eax
lea eax, [ebp + 0x14]
push 0x52cb60
push eax
call fcn.004a03fc
add esp, 0x24
push 0x52cb5c
lea ecx, [ebp + 0x14]
call fcn.004a0288
push esi
push esi
push 1
push 1
push esi
push 0x52c610
push 0xc8
push esi
push dword [ebp + 0x1c]
mov ecx, ebx
call fcn.00455123
push esi
push esi
push esi
push esi
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x14]
call fcn.0047efd7
mov al, 1
jmp 0x4aaa03
mov eax, 0x52c610
cmp dword [ebp + 0x2c], esi
jne 0x4ace42
mov eax, 0x52c604
push esi
push esi
push 1
push 1
push esi
push eax
push 0xc8
push esi
push dword [ebx + 0x184]
mov ecx, ebx
call fcn.00455123
push esi
push esi
push esi
push esi
push dword [ebx + 0x184]
mov ecx, ebx
push dword [edi]
call fcn.0047efd7
mov dword [edi], esi
mov dword [edi + 8], esi
mov dword [edi + 4], esi
jmp 0x4ace2c