Function at 0x49f01c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x4010c0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, ecx
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp + 8]
push ebx
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [eax]
mov dword [ebp - 0x30], ecx
mov ecx, eax
push edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x78], esi
call fcn.004a5717
mov edi, eax
mov dword [ebp - 0x68], edi
test edi, edi
je 0x4a1e71
xor eax, eax
xor ebx, ebx
inc eax
mov edx, 0xa6
push ebx
push eax
push eax
mov ecx, edi
call fcn.004746eb
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x90]
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov dword [eax + 0x2c], 2
push ecx
push dword [ebp - 0x50]
mov ecx, eax
call fcn.00490bd2
mov dword [ebp - 0x54], eax
pop ecx
pop ecx
test eax, eax
js 0x4a1e71
mov ecx, eax
shl ecx, 4
add ecx, dword [esi + 0x10]
mov dword [ebp - 0x64], ecx
cmp eax, 1
jne 0x49f0c1
mov ecx, dword [ebp - 0x38]
call fcn.004954af
test eax, eax
jne 0x4a1e71
mov edx, dword [ebp - 0x90]
mov ecx, esi
call fcn.00490af1
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x4a1e71
cmp dword [ebp + 0x10], ebx
je 0x49f0f4
push dword [ebp - 0x30]
push 0x431674
push esi
call fcn.0045b770
add esp, 0xc
jmp 0x49f0fe
mov edx, dword [ebp - 0x30]
mov ecx, esi
call fcn.00490af1
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
cmp dword [ecx + 4], ebx
jbe 0x49f113
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx]
mov dword [ebp - 0x44], ecx
jmp 0x49f118
mov ecx, ebx
mov dword [ebp - 0x44], ebx
push ecx
mov ecx, dword [ebp - 0x38]
push eax
push dword [ebp - 0xa0]
push 0x13
pop edx
call fcn.0048fcdf
add esp, 0xc
test eax, eax
jne 0x4a1e51
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x18]
push eax
push 0xe
push dword [ebp - 0x44]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
push esi
mov dword [esi + 0x1c8], ebx
call fcn.004c6016
add esp, 0x10
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x49f227
xor esi, esi
mov ecx, edi
lea edx, [esi + 1]
call fcn.00475c35
push 0xffffffffffffffff
push dword [ebp - 0x18]
xor edx, edx
mov ecx, edi
push ebx
call fcn.00475ca0
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4a1e51
push eax
lea edx, [esi + 1]
mov ecx, edi
call fcn.00474755
pop ecx
push ebx
xor eax, eax
mov ecx, edi
inc eax
push eax
push eax
push 0x54
pop edx
call fcn.004746eb
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4a1e51
cmp dword [0x401208], ebx
je 0x49f21b
mov ecx, dword [0x4d1320]
test ecx, ecx
je 0x49f1e4
push ecx
call dword [fcn.00401258]
mov eax, dword [ebp - 0x3c]
pop ecx
push eax
call dword [fcn.00401234]
sub dword [0x4d11a8], eax
dec dword [0x4d11cc]
pop ecx
push dword [ebp - 0x3c]
call dword [0x40122c]
mov eax, dword [0x4d1320]
pop ecx
test eax, eax
je 0x4a1e51
push eax
call dword [fcn.00401260]
jmp 0x4a1e50
push eax
call dword [0x40122c]
jmp 0x4a1e50
cmp eax, 0xc
je 0x49f2ab
cmp dword [ebp - 0x18], ebx
je 0x49f29a
push dword [ebp - 0x18]
push 0x42dc64
push dword [ebp - 0x38]
call fcn.0045c6d7
mov esi, dword [ebp - 0x18]
add esp, 0xc
test esi, esi
je 0x49f29a
cmp dword [0x401208], ebx
je 0x49f292
mov eax, dword [0x4d1320]
test eax, eax
je 0x49f264
push eax
call dword [fcn.00401258]
pop ecx
push esi
call dword [fcn.00401234]
sub dword [0x4d11a8], eax
dec dword [0x4d11cc]
pop ecx
push esi
call dword [0x40122c]
mov eax, dword [0x4d1320]
pop ecx
test eax, eax
je 0x49f29a
push eax
call dword [fcn.00401260]
jmp 0x49f299
push esi
call dword [0x40122c]
pop ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ecx
jmp 0x4a1e51
mov ecx, dword [ebp - 0xa0]
call fcn.0049eed9
mov edx, eax
mov dword [ebp - 0x4c], edx
test edx, edx
je 0x4a1e51
test byte [edx + 5], 1
je 0x49f2dc
mov ecx, dword [ebp - 0x38]
call fcn.004a2b84
test eax, eax
jne 0x4a1e51
mov edx, dword [ebp - 0x4c]
mov al, byte [edx + 5]
test al, 2
jne 0x49f2f8
test al, 4
je 0x49f2ee
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jne 0x49f2fb
mov ecx, edi
call fcn.0049ed9b
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
movzx eax, byte [edx + 4]
dec eax
cmp eax, 0x2a
ja case.0x49f309.5
jmp dword [eax*4 + 0x4a1e80]
mov ebx, dword [ebp - 0x54]
mov ecx, edi
mov edx, ebx
call fcn.00475211
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x49f34c
mov eax, dword [ebp - 0x38]
push ecx
push 0x424440
push 9
add dword [eax + 0x2c], 2
mov ecx, edi
pop edx
call fcn.00474bf1
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x4a1e4f
mov ecx, eax
call fcn.0045d2c7
mov ecx, eax
call fcn.0045d91c
mov ecx, dword [ebp - 0x38]
xor edx, edx
push ebx
mov esi, eax
call fcn.004955b2
pop ecx
push esi
push 3
push ebx
push 0x64
pop edx
mov ecx, edi
call fcn.004746eb
mov ecx, dword [ebp - 0x64]
add esp, 0xc
mov eax, dword [ecx + 0xc]
mov dword [eax + 0x50], esi
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [edx + 0x50]
call fcn.0046afbe
jmp 0x4a1e51
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
test ecx, ecx
jne 0x49f3b3
test eax, eax
je 0x49f3ac
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x24]
mov eax, ebx
jmp 0x4a1e45
call fcn.0045d2c7
mov ecx, dword [ebp - 0x1c]
mov edx, eax
push ebx
push ebx
mov dword [esi + 0x64], eax
call fcn.0046b07f
pop ecx
pop ecx
cmp eax, 7
jne 0x4a1e51
mov ecx, esi
call fcn.00459aa2
jmp 0x4a1e51
mov eax, dword [ebp - 0x64]
or edx, 0xffffffff
mov dword [ebp - 0x34], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
test ecx, ecx
je 0x49f41b
mov edx, 0x431678
call fcn.0045c824
test eax, eax
jne 0x49f404
push 2
pop edx
jmp 0x49f418
mov ecx, dword [ebp - 0x58]
xor edx, edx
push ebx
inc edx
call fcn.0049ec30
xor edx, edx
test al, al
pop ecx
setne dl
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x50]
cmp dword [eax + 4], ebx
jne 0x49f450
test edx, edx
js 0x49f450
cmp dword [esi + 0x14], ebx
jle 0x49f450
mov edi, ebx
mov dword [ebp - 0x74], 0x10
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0046b16f
add edi, dword [ebp - 0x74]
inc ebx
mov edx, dword [ebp - 0x34]
cmp ebx, dword [esi + 0x14]
jl 0x49f435
mov edi, dword [ebp - 0x68]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
call fcn.0046b16f
jmp 0x4a1e45
mov esi, dword [ebp - 0x38]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x54]
mov ecx, esi
movlpd qword [ebp - 0x2c], xmm0
cmp dword [esi + 0x78], ebx
cmovne ecx, dword [esi + 0x78]
call fcn.0049552b
mov ecx, dword [esi + 0x2c]
mov eax, dword [ebp - 0xa0]
inc ecx
mov dword [esi + 0x2c], ecx
mov dword [ebp - 0x30], ecx
movzx eax, byte [eax]
cmp byte [eax + 0x425d20], 0x70
jne 0x49f4ae
push ebx
push ecx
push dword [ebp - 0x54]
mov edx, 0xb1
mov ecx, edi
call fcn.004746eb
mov esi, dword [ebp - 0x30]
jmp 0x49f501
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x49f4e2
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.0045d0a0
test eax, eax
jne 0x49f4e2
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], ebx
jg 0x49f4dd
jl 0x49f4e2
cmp eax, ebx
jb 0x49f4e2
cmp dword [ebp - 0x28], ebx
jl 0x49f4ed
jg 0x49f4dd
cmp eax, 0xfffffffe
jbe 0x49f4ed
push 0xfffffffffffffffe
pop eax
jmp 0x49f4ed
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
mov edx, 0xb2
push eax
push esi
push dword [ebp - 0x54]
mov ecx, edi
call fcn.004746eb
add esp, 0xc
push ebx
push 1
push esi
push 0x54
pop edx
mov ecx, edi
call fcn.004746eb
add esp, 0xc
jmp 0x4a1e51
or eax, 0xffffffff
mov edx, 0x42de48
test ecx, ecx
je 0x49f54f
call fcn.0045c824
test eax, eax
jne 0x49f537
xor edx, edx
inc edx
or eax, 0xffffffff
jmp 0x49f551
mov ecx, dword [ebp - 0x58]
mov edx, 0x43158c
call fcn.0045c824
test eax, eax
jne 0x49f54c
mov edx, ebx
jmp 0x49f532
or eax, 0xffffffff
mov edx, eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 4], ebx
jne 0x49f5a0
cmp edx, eax
jne 0x49f563
movzx eax, byte [esi + 0x59]
jmp 0x49f5b0
push 2
pop ebx
cmp dword [esi + 0x14], ebx
jle 0x49f59d
push 0x20
pop ecx
mov dword [ebp - 0x74], 0x10
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x30], ecx
mov eax, dword [esi + 0x10]
mov eax, dword [eax + ecx + 4]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
call fcn.0046677c
mov ecx, dword [ebp - 0x30]
inc ebx
add ecx, edi
mov dword [ebp - 0x30], ecx
cmp ebx, dword [esi + 0x14]
jl 0x49f57b
mov edi, dword [ebp - 0x68]
mov byte [esi + 0x59], dl
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
call fcn.0046677c
cmp eax, 1
mov edx, 0x43158c
mov ecx, 0x42de48
cmove edx, ecx
mov ecx, edi
call fcn.0049ee43
jmp 0x4a1e51
test ecx, ecx
je 0x49f61e
call fcn.0045c53b
mov ecx, eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x1c], ecx
mov eax, ebx
cmp eax, 6
je 0x49f61e
mov eax, dword [eax*4 + 0x424bf8]
test eax, eax
je 0x49f61e
push ecx
push eax
push dword [ebp - 0x58]
call fcn.0045c84f
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x4c]
je 0x49f60c
mov ecx, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x4c], eax
jmp 0x49f5df
cmp dword [ebp - 0x4c], 2
jne 0x49f638
mov eax, dword [esi + 0x20]
and eax, 0x10000000
or eax, ebx
je 0x49f640
or dword [ebp - 0x4c], 0xffffffff
mov edx, dword [ebp - 0x50]
cmp dword [edx + 4], ebx
jne 0x49f643
mov ecx, ebx
mov dword [edx + 4], 1
mov dword [ebp - 0x54], ecx
jmp 0x49f646
mov dword [ebp - 0x4c], eax
cmp eax, 0xffffffff
je 0x49f622
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
mov eax, dword [esi + 0x14]
sub eax, 1
mov dword [ebp - 0x40], eax
js 0x49f6ae
shl eax, 4
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x74], 0x10
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0x3c]
cmp dword [eax + edi + 4], ebx
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x40]
je 0x49f69a
cmp eax, ecx
je 0x49f679
cmp dword [edx + 4], ebx
jne 0x49f69a
mov edx, eax
mov ecx, edi
call fcn.00475211
push dword [ebp - 0x4c]
mov ecx, edi
push 1
push dword [ebp - 0x40]
push 4
pop edx
call fcn.004746eb
mov eax, dword [ebp - 0x40]
add esp, 0xc
mov ecx, dword [ebp - 0x74]
dec eax
sub dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
test eax, eax
jns 0x49f65e
xor eax, eax
push ebx
inc eax
push eax
push eax
jmp 0x49f508
mov eax, dword [ebp - 0x64]
or ebx, 0xffffffff
mov edx, ebx
mov dword [ebp - 0x28], edx
push 0xfffffffffffffffe
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax]
pop eax
mov dword [ebp - 0x2c], eax
test ecx, ecx
je 0x49f6f7
lea edx, [ebp - 0x2c]
call fcn.0045d0a0
mov edx, dword [ebp - 0x28]
cmp edx, ebx
jg 0x49f6f4
jl 0x49f6ee
mov eax, dword [ebp - 0x2c]
cmp eax, ebx
jae 0x49f6f7
mov eax, ebx
mov edx, ebx
jmp 0x49f6f7
mov eax, dword [ebp - 0x2c]
cmp edx, ebx
jl 0x49f71d
jg 0x49f701
cmp eax, ebx
jb 0x49f71d
mov ecx, dword [esi + 0xe8]
mov dword [esi + 0xb0], eax
mov dword [esi + 0xb4], edx
test ecx, ecx
je 0x49f71d
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
push dword [esi + 0xb4]
push dword [esi + 0xb0]
jmp 0x4a1e48
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
test ecx, ecx
jne 0x49f747
mov ecx, eax
call fcn.0046b212
jmp 0x4a1e45
call fcn.0049eca2
mov ecx, dword [ebp - 0x1c]
mov ebx, eax
mov edx, ebx
mov byte [esi + 0x5a], bl
call fcn.0046b1b7
test eax, eax
jne 0x4a1e51
cmp ebx, 1
je 0x49f771
cmp ebx, 2
jne 0x4a1e51
mov esi, dword [edi + 0x6c]
push ecx
push 0x4256ac
push 5
pop edx
mov ecx, edi
call fcn.00474bf1
mov edx, dword [ebp - 0x54]
pop ecx
pop ecx
lea ecx, [esi + 4]
mov dword [eax + 4], edx
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 0x5c], ecx
mov ecx, edi
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
call fcn.00475211
jmp 0x4a1e51
mov dword [ebp - 0x30], ebx
test ecx, ecx
je 0x49f7c7
lea edx, [ebp - 0x30]
call fcn.0045d174
test eax, eax
je 0x49f7c7
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
test eax, eax
jg 0x49f7ce
mov dword [ebp - 0x30], 0x7fffffff
mov esi, dword [ebp - 0x54]
xor edx, edx
mov ecx, dword [ebp - 0x38]
push esi
call fcn.004955b2
pop ecx
push ebx
push 1
push dword [ebp - 0x30]
mov ecx, edi
push 0x47
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push ebx
push ebx
push esi
push 0x3e
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
mov esi, eax
push ebx
push ebx
push 1
push 0x54
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push ebx
push 0xffffffffffffffff
push 1
push 0x56
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push ebx
push esi
push 1
push 0x3b
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x4a1e51
test ecx, ecx
jne 0x49f85c
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x4a1e45
call fcn.0045d2c7
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
jmp 0x49f388
test ecx, ecx
jne 0x49f89b
mov eax, dword [esi + 0x20]
and eax, 0x20
or eax, ebx
je 0x49f3ac
mov eax, dword [ebp - 0x64]
xor edx, edx
mov ecx, dword [eax + 4]
call fcn.0046aff8
mov ebx, eax
jmp 0x49f3ac
xor ebx, ebx
lea edx, [ebp - 0x3c]
inc ebx
mov dword [ebp - 0x3c], ebx
call fcn.0045d174
test eax, eax
je 0x49f8bb
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [eax + 4]
call fcn.0046aff8
mov eax, dword [esi + 0x24]
mov edx, ebx
cmp dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x58]
mov edi, dword [esi + 0x20]
mov dword [ebp - 0x48], eax
setne al
movzx eax, al
push eax
call fcn.0049ec30
pop ecx
test al, al
je 0x49f8e3
or edi, 0x20
jmp 0x49f8ec
mov eax, dword [ebp - 0x48]
and edi, 0xffffffdf
mov dword [ebp - 0x48], eax
mov eax, esi
mov dword [eax + 0x20], edi
mov ecx, dword [ebp - 0x48]
mov dword [eax + 0x24], ecx
mov ecx, esi
call fcn.0049ee69
jmp 0x4a1e51
test ecx, ecx
je 0x49f9db
lea edx, [ebp - 0x2c]
call fcn.0045d0a0
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], edx
cmp edx, ebx
jg 0x49f93f
jl 0x49f929
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
cmp eax, ebx
jae 0x49f945
mov edx, dword [0x4012b4]
mov eax, dword [0x4012b0]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
jmp 0x49f942
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 4], ebx
jne 0x49f953
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x14]
sub edx, 1
mov dword [ebp - 0x30], edx
js 0x49f9db
mov edi, dword [ebp - 0x54]
mov eax, edx
shl eax, 4
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x74], 0x10
mov ecx, dword [ebp - 0x48]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + ecx + 4]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x49f9ca
cmp edx, edi
je 0x49f98d
cmp dword [ecx + 4], ebx
jne 0x49f9ca
mov esi, dword [eax + 4]
mov ecx, eax
call fcn.00468ffc
mov ecx, dword [esi]
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x88], eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 0x8c], eax
call fcn.00464643
mov ecx, dword [ebp - 0x1c]
call fcn.00469075
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x74]
dec edx
sub dword [ebp - 0x48], eax
mov dword [ebp - 0x30], edx
test edx, edx
jns 0x49f970
mov edi, dword [ebp - 0x68]
or eax, 0xffffffff
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
push eax
push 0x12
push dword [ebp - 0x44]
push esi
call fcn.004c6016
mov ecx, eax
add esp, 0x10
test ecx, ecx
jne 0x49fa07
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
jmp 0x4a1e48
push 0xc
pop eax
cmp ecx, eax
je 0x4a1e51
jmp 0x49f29d
test ecx, ecx
jne 0x49fa24
movzx eax, byte [esi + 0x56]
jmp 0x4a1e45
mov edx, ecx
mov ecx, dword [ebp - 0x38]
call fcn.0049ed35
jmp 0x4a1e51
push 0xb
pop ecx
call fcn.00458e70
test eax, eax
je 0x49fa47
push eax
call dword [fcn.00401258]
pop ecx
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jne 0x49fa5d
mov edx, dword [0x4d10b4]
mov ecx, edi
call fcn.0049ee43
jmp 0x49fa89
cmp byte [ecx], bl
je 0x49fa96
mov eax, dword [esi]
lea edx, [ebp - 0x1c]
push edx
push 1
push ecx
push eax
call dword [eax + 0x20]
add esp, 0x10
test eax, eax
jne 0x49fa7a
cmp dword [ebp - 0x1c], ebx
jne 0x49fa96
push 0x431680
push dword [ebp - 0x38]
call fcn.0045c6d7
pop ecx
pop ecx
push 0xb
pop ecx
call fcn.00458e70
jmp 0x49f207
cmp byte [esi + 0x56], 1
ja 0x49faa4
mov ecx, dword [ebp - 0x38]
call fcn.0049ecf1
push dword [0x4d10b4]
call fcn.0045946b
mov eax, dword [ebp - 0x58]
pop ecx
cmp byte [eax], bl
je 0x49fac9
push eax
push 0x42dc64
call fcn.0045b7fe
mov dword [0x4d10b4], eax
jmp 0x49fa87
mov dword [0x4d10b4], ebx
jmp 0x49fa89
push 0xb
pop ecx
call fcn.00458e70
test eax, eax
je 0x49fae5
push eax
call dword [fcn.00401258]
pop ecx
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jne 0x49faf7
mov edx, dword [0x4d10b0]
jmp 0x49fa54
cmp byte [ecx], bl
je 0x49fb1c
mov eax, dword [esi]
lea edx, [ebp - 0x1c]
push edx
push 1
push ecx
push eax
call dword [eax + 0x20]
add esp, 0x10
test eax, eax
jne 0x49fa7a
cmp dword [ebp - 0x1c], ebx
je 0x49fa7a
push dword [0x4d10b0]
call fcn.0045946b
mov eax, dword [ebp - 0x58]
pop ecx
cmp byte [eax], bl
je 0x49fb44
push eax
push 0x42dc64
call fcn.0045b7fe
mov dword [0x4d10b0], eax
jmp 0x49fa87
mov dword [0x4d10b0], ebx
jmp 0x49fa89
test ecx, ecx
jne 0x49fb65
mov eax, dword [ebp - 0x64]
movzx eax, byte [eax + 8]
cdq
sub eax, 1
sbb edx, ebx
jmp 0x4a1e46
cmp byte [esi + 0x55], bl
jne 0x49fb7c
push 0x43169c
push dword [ebp - 0x38]
call fcn.0045c6d7
jmp 0x4a1e4f
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x54], ebx
je 0x4a1e51
push ebx
xor edx, edx
call fcn.0049ec30
inc eax
pop ecx
mov ecx, dword [ebp - 0x64]
and eax, 7
cmove eax, ebx
mov byte [ecx + 8], al
mov byte [ecx + 9], bl
jmp 0x49f8f7
test ecx, ecx
jne 0x49fbdd
mov ecx, edi
call fcn.0049ed9b
mov edx, dword [ebp - 0x4c]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [edx + 8]
and eax, dword [edx + 0xc]
or ecx, eax
je 0x49fbc9
xor eax, eax
inc eax
jmp 0x49fbd7
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
push ebx
jmp 0x4a1e47
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], edx
cmp byte [esi + 0x55], bl
jne 0x49fbf9
and eax, 0xffffbfff
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x20]
xor edx, edx
mov dword [ebp - 0x30], eax
inc edx
mov eax, dword [esi + 0x24]
push ebx
mov dword [ebp - 0x48], eax
call fcn.0049ec30
pop ecx
test al, al
je 0x49fc27
mov eax, dword [ebp - 0x30]
or eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
or ecx, dword [ebp - 0x34]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
jmp 0x49fc79
mov edx, dword [ebp - 0x3c]
mov ecx, edx
mov eax, dword [ebp - 0x34]
not ecx
and ecx, dword [ebp - 0x30]
not eax
and eax, dword [ebp - 0x48]
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
cmp edx, 0x80000
jne 0x49fc5a
cmp dword [ebp - 0x34], ebx
jne 0x49fc5a
mov dword [esi + 0x208], ebx
mov dword [esi + 0x20c], ebx
jmp 0x49fc79
and edx, 1
or edx, ebx
je 0x49fc79
mov ecx, dword [ebp - 0x58]
mov edx, 0x4316d4
call fcn.0045c824
test eax, eax
jne 0x49fc79
mov ecx, esi
call fcn.00490791
push ebx
push ebx
push ebx
mov edx, 0xa6
mov ecx, edi
call fcn.004746eb
add esp, 0xc
jmp 0x49f8f7
test ecx, ecx
je 0x4a1e51
mov esi, dword [ebp - 0x38]
mov ecx, esi
mov edx, dword [ebp - 0x44]
call fcn.00495554
push dword [ebp - 0x44]
mov ecx, esi
push dword [ebp - 0x58]
push 2
pop edx
call fcn.004903e5
mov edx, eax
mov dword [ebp - 0x5c], edx
pop ecx
pop ecx
test edx, edx
je 0x4a1e51
mov ecx, edx
mov dword [ebp - 0x48], ebx
call fcn.00490d43
mov ecx, esi
mov dword [ebp - 0x30], eax
mov dword [esi + 0x2c], 7
call fcn.0049313c
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov dword [ebp - 0x84], ebx
movzx esi, word [ecx + 0x22]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x80], edx
cmp ax, si
jge 0x4a1e51
mov eax, esi
mov dword [ebp - 0x74], 0x10
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x34], eax
movzx eax, word [edx + 0xe]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x1c], eax
test al, 0x62
je 0x49fd4d
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
jne 0x49fd2a
inc dword [ebp - 0x48]
jmp 0x49fe12
movzx eax, word [edx + 0xe]
test al, 0x20
je 0x49fd3b
mov dword [ebp - 0x3c], 2
jmp 0x49fd4d
movzx ecx, al
and ecx, 0x40
or ecx, 0x20
shr ecx, 5
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x5c]
xor eax, eax
inc eax
test byte [ebp - 0x1c], al
jne 0x49fd5a
mov dword [ebp - 0x40], ebx
jmp 0x49fd9d
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x30], ebx
je 0x49fd9d
mov edi, dword [ebp - 0x34]
movsx edi, di
mov dword [ebp - 0x1c], edi
cmp edi, eax
mov edi, dword [ebp - 0x68]
jl 0x49fd9d
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x1c]
mov esi, dword [eax + 4]
movsx eax, word [esi]
cmp eax, dword [ebp - 0x84]
je 0x49fd91
inc edi
add esi, 2
cmp edi, edx
jle 0x49fd7e
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x40], edi
mov edi, dword [ebp - 0x68]
call fcn.00490862
mov ecx, dword [ebp - 0x3c]
cmp ecx, 2
jae 0x49fdb6
test eax, eax
je 0x49fdb6
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
jmp 0x49fdb9
mov dword [ebp - 0x3c], ebx
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
mov dword [ebp - 0x34], 0x4316dc
jne 0x49fdcf
mov dword [ebp - 0x34], 0x4316e4
test byte [edx + 4], 0xf
mov edx, 0x420b82
push ecx
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x80]
push dword [ebp - 0x3c]
push 0
pop eax
setne al
push eax
call fcn.0045c557
push eax
mov eax, dword [ebp - 0x80]
push dword [eax]
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x48]
push eax
push dword [ebp - 0x34]
push 1
push edi
call fcn.00474786
mov ecx, dword [ebp - 0x5c]
add esp, 0x28
mov edx, dword [ebp - 0x80]
movzx eax, word [ecx + 0x22]
add edx, dword [ebp - 0x74]
mov esi, eax
inc dword [ebp - 0x84]
cwde
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x84], eax
jl 0x49fd0c
jmp 0x4a1e51
mov eax, dword [ebp - 0x38]
mov ecx, eax
mov edx, dword [ebp - 0x44]
mov dword [eax + 0x2c], 6
call fcn.00495554
mov dword [ebp - 0x5c], ebx
cmp dword [esi + 0x14], ebx
jle 0x4a1e51
mov ecx, dword [ebp - 0x44]
mov edx, ebx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x74], 0x10
test ecx, ecx
je 0x49fe8f
mov eax, dword [esi + 0x10]
mov eax, dword [edx + eax]
test eax, eax
je 0x4a00ec
mov edx, eax
call fcn.0045c824
mov edx, dword [ebp - 0x6c]
test eax, eax
jne 0x4a00e9
mov eax, dword [esi + 0x10]
mov eax, dword [eax + edx + 0xc]
add eax, 8
mov ecx, dword [eax + 4]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x49ffd7
mov edi, ecx
mov ecx, dword [eax + 8]
dec edi
jmp 0x49fec0
mov esi, dword [ecx + 8]
mov dword [ebp - 0x1c], esi
cmp word [esi + 0x22], bx
mov esi, dword [ebp - 0x78]
je 0x49fec9
mov ecx, dword [ecx]
test ecx, ecx
jne 0x49feaf
jmp 0x49ffd4
mov eax, dword [ebp - 0x1c]
push dword [eax]
push 0x4316ec
push esi
call fcn.0045b770
add esp, 0xc
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x49ff9a
push ebx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
push ecx
push ebx
push ebx
push 0xffffffffffffffff
mov edx, eax
mov ecx, esi
call fcn.004a310d
mov eax, dword [ebp - 0x30]
add esp, 0x14
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x49ff90
mov ecx, dword [eax]
mov dword [ebp - 0x34], ecx
mov ecx, eax
call fcn.00477ba7
test eax, eax
je 0x49ff29
mov ecx, 0x15922
call fcn.004c5cd7
jmp 0x49ff90
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x49ff3e
push eax
call dword [fcn.00401258]
pop ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x8c], ebx
jl 0x49ff5d
jg 0x49ff53
cmp dword [eax + 0x88], ebx
jbe 0x49ff5d
mov edx, eax
call fcn.00477bc4
mov eax, dword [ebp - 0x3c]
mov ecx, eax
call fcn.004766c7
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x48], eax
call fcn.00476858
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
cmp byte [eax + 0x57], 0
jne 0x49ff7f
test edx, edx
je 0x49ff89
mov ecx, eax
call fcn.00459b4e
mov eax, dword [ebp - 0x34]
mov ecx, eax
call fcn.004c3fd1
mov edx, dword [ebp - 0x1c]
mov ecx, esi
call fcn.004594d9
cmp byte [esi + 0x57], 0
je 0x49ffbf
push 0x42cf24
push dword [esi + 0x10c]
call fcn.0045c6d7
mov eax, dword [esi + 0x10c]
pop ecx
pop ecx
mov dword [eax + 0xc], 7
mov eax, dword [esi + 0x10]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx + 0xc]
add eax, 8
test edi, edi
jne 0x49fea9
mov edi, dword [ebp - 0x68]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4a00e9
mov ebx, dword [ebp - 0x58]
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
test ebx, ebx
je 0x4a000e
mov edx, dword [eax]
test edx, edx
je 0x4a00d4
mov ecx, ebx
call fcn.0045c824
test eax, eax
jne 0x4a00d4
mov eax, dword [ebp - 0x3c]
mov cl, byte [eax + 0x2b]
cmp cl, 2
jne 0x4a001f
mov dword [ebp - 0x48], 0x42fa08
jmp 0x4a0044
cmp cl, 1
jne 0x4a002d
mov dword [ebp - 0x48], 0x4302b4
jmp 0x4a0044
test dword [eax + 0x1c], 0x1000
mov ecx, 0x4316fc
mov edx, 0x42f394
cmove ecx, edx
mov dword [ebp - 0x48], ecx
mov eax, dword [eax]
push 7
push 0x42e97c
push eax
mov dword [ebp - 0x34], eax
call fcn.0045c84f
add esp, 0xc
test eax, eax
jne 0x4a0097
mov eax, dword [ebp - 0x34]
mov edx, 0x42e797
add eax, 7
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.0045c824
test eax, eax
jne 0x4a007f
mov dword [ebp - 0x34], 0x42e9ac
jmp 0x4a0097
mov ecx, dword [ebp - 0x1c]
mov edx, 0x42e98b
call fcn.0045c824
test eax, eax
jne 0x4a0097
mov dword [ebp - 0x34], 0x42e998
mov ecx, dword [ebp - 0x3c]
xor edx, edx
inc edx
mov ecx, dword [ecx + 0x1c]
mov eax, ecx
shr eax, 0x10
and eax, edx
shr ecx, 7
push eax
mov eax, dword [ebp - 0x3c]
and ecx, edx
push ecx
mov ecx, dword [ebp - 0x6c]
movsx eax, word [eax + 0x22]
push eax
push dword [ebp - 0x48]
mov eax, dword [esi + 0x10]
push dword [ebp - 0x34]
push dword [eax + ecx]
push 0x431704
push edx
push edi
call fcn.00474786
add esp, 0x24
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x49ffe8
mov edx, dword [ebp - 0x6c]
xor ebx, ebx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x5c]
add edx, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x6c], edx
cmp eax, dword [esi + 0x14]
jl 0x49fe6b
jmp 0x4a1e51
test ecx, ecx
je 0x4a1e51
push dword [ebp - 0x44]
mov edx, ecx
mov ecx, esi
call fcn.00490552
mov dword [ebp - 0x40], eax
pop ecx
test eax, eax
jne 0x4a015a
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x58]
push 2
pop edx
call fcn.004903e5
pop ecx
pop ecx
test eax, eax
je 0x4a1e51
test byte [eax + 0x1c], 0x80
je 0x4a1e51
mov ecx, eax
call fcn.00490d43
mov dword [ebp - 0x40], eax
test eax, eax
je 0x4a1e51
mov edx, dword [eax + 0x18]
mov ecx, esi
call fcn.004a2c91
mov esi, dword [ebp - 0x38]
mov edx, esi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 8]
or ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x40]
je 0x4a0182
movzx edi, word [eax + 0x34]
push 6
jmp 0x4a0188
movzx edi, word [eax + 0x32]
push 3
pop ecx
mov dword [ebp - 0x30], edi
mov dword [edx + 0x2c], ecx
mov ecx, esi
cmp dword [esi + 0x78], ebx
mov eax, dword [eax + 0xc]
cmovne ecx, dword [esi + 0x78]
mov edx, dword [ebp - 0x1c]
movzx edi, di
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x90], eax
call fcn.0049552b
mov edx, ebx
test edi, edi
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x3c], edx
je 0x4a1e51
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx*2]
movsx ecx, ax
mov dword [ebp - 0x1c], ecx
test ax, ax
jns 0x4a01db
mov eax, ebx
jmp 0x4a01ec
mov eax, dword [ebp - 0x90]
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
push edx
push 0x43170c
push 1
push edi
call fcn.00474786
mov ecx, dword [ebp - 0x4c]
add esp, 0x18
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x4a0239
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
movzx eax, word [ecx + 0x32]
cmp edx, eax
sbb eax, eax
neg eax
push eax
mov eax, dword [ecx + 0x20]
push dword [eax + edx*4]
mov eax, dword [ecx + 0x1c]
movzx eax, byte [eax + edx]
push eax
push 0x431714
push 4
push edi
call fcn.00474786
add esp, 0x18
push ebx
push dword [esi + 0x2c]
mov ecx, edi
push 1
push 0x54
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x3c]
add esp, 0xc
inc edx
mov dword [ebp - 0x3c], edx
cmp edx, dword [ebp - 0x94]
jl 0x4a01c2
jmp 0x4a1e51
test ecx, ecx
je 0x4a1e51
push dword [ebp - 0x44]
mov edx, ecx
mov ecx, esi
call fcn.004901ec
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
je 0x4a1e51
mov edx, dword [eax + 0x3c]
mov ecx, esi
call fcn.004a2c91
mov esi, dword [ebp - 0x38]
mov edx, eax
mov ecx, dword [esi + 0x78]
test ecx, ecx
mov dword [esi + 0x2c], 5
cmovne esi, ecx
mov ecx, esi
call fcn.0049552b
mov esi, dword [ebp - 0x1c]
mov edx, ebx
mov dword [ebp - 0x30], ebx
mov esi, dword [esi + 8]
test esi, esi
je 0x4a1e51
push 3
mov dword [ebp - 0x2c], 0x43171c
mov dword [ebp - 0x28], 0x431720
mov dword [ebp - 0x24], 0x43106c
pop ecx
xor eax, eax
cmp dword [esi + 0x24], ebx
setne al
push eax
mov eax, dword [esi + 0x38]
and eax, ecx
push dword [ebp + eax*4 - 0x2c]
xor eax, eax
cmp byte [esi + 0x36], al
setne al
push eax
push dword [esi]
push edx
push 0x431724
push 1
push edi
call fcn.00474786
mov edx, dword [ebp - 0x30]
add esp, 0x20
mov esi, dword [esi + 0x14]
inc edx
mov dword [ebp - 0x30], edx
push 3
pop ecx
test esi, esi
jne 0x4a02d4
jmp 0x4a1e51
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x2c], 3
cmp dword [esi + 0x14], ebx
jle 0x4a1e51
push 0x10
mov eax, ebx
pop ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x74], ecx
mov edx, dword [esi + 0x10]
mov edx, dword [edx + eax + 4]
test edx, edx
je 0x4a036e
mov ecx, dword [edx + 4]
xor edx, edx
inc edx
mov ecx, dword [ecx]
call fcn.00466605
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [ebp - 0x3c]
push dword [ecx + eax]
push ebx
push 0x43172c
push edx
push edi
call fcn.00474786
mov eax, dword [ebp - 0x3c]
add esp, 0x18
mov ecx, dword [ebp - 0x74]
inc ebx
add eax, ecx
mov dword [ebp - 0x3c], eax
cmp ebx, dword [esi + 0x14]
jl 0x4a0336
jmp 0x4a1e51
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x2c], 2
mov esi, dword [esi + 0x1b8]
jmp 0x4a03a9
mov eax, dword [esi + 8]
push dword [eax]
push ebx
push 0x431730
push 1
push edi
call fcn.00474786
mov esi, dword [esi]
add esp, 0x14
inc ebx
test esi, esi
jne 0x4a0390
jmp 0x4a1e51
mov eax, dword [esi + 0x18]
xor ebx, ebx
mov esi, eax
inc ebx
mov eax, dword [ebp - 0x38]
shr esi, 5
and esi, ebx
mov dword [ebp - 0x3c], esi
mov dword [eax + 0x2c], 6
mov eax, 0x4d1228
mov dword [ebp - 0x48], eax
mov eax, dword [eax]
jmp 0x4a03eb
push esi
push ebx
mov edx, eax
mov ecx, edi
call fcn.0049ef47
mov eax, dword [ebp - 0x30]
pop ecx
pop ecx
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x4a03d8
mov eax, dword [ebp - 0x48]
add eax, 4
mov dword [ebp - 0x48], eax
cmp eax, 0x4d1284
jl 0x4a03d4
mov esi, dword [ebp - 0x78]
push 0
pop ebx
mov eax, dword [esi + 0x1a8]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4a1e51
mov esi, dword [ebp - 0x3c]
mov edx, dword [eax + 8]
mov ecx, edi
push esi
push ebx
call fcn.0049ef47
mov eax, dword [ebp - 0x30]
pop ecx
pop ecx
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x4a041c
jmp 0x4a1e51
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x2c], 1
mov esi, dword [esi + 0x18c]
jmp 0x4a0465
mov eax, dword [esi + 8]
push dword [eax + 4]
push 0x42ee00
push 1
push edi
call fcn.00474786
mov esi, dword [esi]
add esp, 0x10
test esi, esi
jne 0x4a044d
jmp 0x4a1e51
push 0x10
mov esi, 0x4261b8
pop ebx
push dword [esi]
push 0x42ee00
push 1
push edi
call fcn.00474786
add esi, ebx
add esp, 0x10
cmp esi, 0x4265e8
jl 0x4a0476
jmp 0x4a1e51
test ecx, ecx
je 0x4a1e51
push dword [ebp - 0x44]
mov edx, ecx
mov ecx, esi
call fcn.004901ec
mov dword [ebp - 0x90], eax
pop ecx
test eax, eax
je 0x4a1e51
cmp byte [eax + 0x2b], bl
jne 0x4a1e51
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x4a1e51
mov edx, dword [eax + 0x3c]
mov ecx, esi
call fcn.004a2c91
mov esi, dword [ebp - 0x38]
mov edx, eax
mov dword [ebp - 0x3c], ebx
mov ecx, dword [esi + 0x78]
test ecx, ecx
mov dword [esi + 0x2c], 8
cmovne esi, ecx
mov ecx, esi
call fcn.0049552b
mov esi, dword [ebp - 0x1c]
mov eax, ebx
mov edx, ebx
mov dword [ebp - 0x30], edx
cmp dword [esi + 0x14], ebx
jle 0x4a0560
lea ebx, [esi + 0x24]
mov cl, byte [esi + 0x19]
push 0x431734
call fcn.0049eea4
mov cl, byte [esi + 0x1a]
push eax
call fcn.0049eea4
mov ecx, dword [ebx]
push eax
push dword [ebx + 4]
mov eax, dword [ebp - 0x90]
add ecx, ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [esi + 8]
push edx
push dword [ebp - 0x3c]
push 0x43173c
push 1
push edi
call fcn.00474786
mov edx, dword [ebp - 0x30]
lea ebx, [ebx + 8]
add esp, 0x2c
inc edx
mov dword [ebp - 0x30], edx
cmp edx, dword [esi + 0x14]
jl 0x4a050b
mov eax, dword [ebp - 0x3c]
xor ebx, ebx
mov esi, dword [esi + 4]
inc eax
mov dword [ebp - 0x3c], eax
test esi, esi
jne 0x4a04fe
jmp 0x4a1e51
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
add eax, 5
mov dword [ebp - 0x5c], edx
mov edx, dword [ebp - 0x54]
mov dword [ecx + 0x2c], eax
add edx, edx
mov dword [ebp - 0x8c], eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + edx*8 + 0xc]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x4a1e51
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x4a05ba
push dword [ebp - 0x44]
xor edx, edx
push eax
call fcn.004903e5
pop ecx
pop ecx
mov edx, ebx
mov dword [ebp - 0x70], ebx
jmp 0x4a05c2
mov eax, dword [edx + 8]
mov edx, dword [edx]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x4a097c
cmp byte [eax + 0x2b], bl
jne 0x4a097c
cmp dword [eax + 0x30], ebx
je 0x4a097c
mov edx, dword [eax + 0x3c]
mov ecx, esi
call fcn.004a2c91
mov ecx, dword [esi + 0x10]
mov edx, eax
add edx, edx
mov dword [ebp - 0x6c], eax
mov eax, dword [ecx + edx*8]
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x38]
mov ecx, eax
cmp dword [eax + 0x78], ebx
cmovne ecx, dword [eax + 0x78]
call fcn.0049552b
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x38]
push dword [eax]
push ebx
push dword [eax + 0x14]
call fcn.0048fe11
mov ecx, dword [ebp - 0x4c]
add esp, 0xc
mov eax, dword [ebp - 0x38]
movsx edx, word [ecx + 0x22]
add edx, dword [ebp - 0x8c]
cmp dword [eax + 0x2c], edx
jge 0x4a063c
mov dword [eax + 0x2c], edx
push 0x70
push ecx
push dword [ebp - 0x6c]
xor edx, edx
mov ecx, eax
call fcn.0049af56
mov eax, dword [ebp - 0x4c]
add esp, 0xc
mov edx, dword [ebp - 0x5c]
mov ecx, edi
push dword [eax]
call fcn.00474755
mov eax, dword [ebp - 0x4c]
pop ecx
xor ecx, ecx
inc ecx
mov eax, dword [eax + 0x30]
jmp 0x4a0710
push dword [ebp - 0x44]
mov edx, dword [eax + 8]
mov ecx, esi
call fcn.004901ec
mov dword [ebp - 0x30], eax
pop ecx
test eax, eax
je 0x4a0706
push dword [eax]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x38]
push ebx
push dword [eax + 0x14]
mov dword [ebp - 0x88], ebx
call fcn.0048fe11
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 0x38]
add esp, 0xc
push ebx
push eax
push dword [ebp - 0x3c]
call fcn.004996d2
add esp, 0xc
test eax, eax
jne 0x4a1e51
mov eax, dword [ebp - 0x88]
test eax, eax
jne 0x4a06e2
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
push 0x70
push dword [ebp - 0x30]
push dword [ebp - 0x6c]
call fcn.0049af56
add esp, 0xc
jmp 0x4a0706
push dword [ebp - 0x6c]
mov ecx, edi
push dword [eax + 0x2c]
push dword [ebp - 0x34]
push 0x70
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x88]
add esp, 0xc
mov ecx, dword [ebp - 0x38]
call fcn.00474f4d
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
inc ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], ecx
test eax, eax
jne 0x4a066c
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x28], ecx
jge 0x4a0729
mov dword [eax + 0x28], ecx
push ebx
push ebx
push ebx
push 0x24
pop edx
mov ecx, edi
call fcn.004746eb
mov dword [ebp - 0x30], eax
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], 1
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x50], eax
test eax, eax
je 0x4a0955
mov ecx, dword [ebp - 0x5c]
lea edx, [ecx + 1]
add ecx, 2
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x60], ecx
push dword [ebp - 0x44]
mov edx, dword [eax + 8]
mov ecx, esi
call fcn.004901ec
mov dword [ebp - 0x90], eax
mov edx, ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], edx
pop ecx
test eax, eax
je 0x4a07b0
lea ecx, [ebp - 0x84]
mov edx, eax
push ecx
lea ecx, [ebp - 0x88]
push ecx
push dword [ebp - 0x50]
mov ecx, dword [ebp - 0x38]
call fcn.004996d2
mov edx, dword [ebp - 0x84]
add esp, 0xc
mov eax, dword [ebp - 0x38]
dec dword [eax + 0x38]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x50]
mov edi, dword [ecx + 0x14]
add edi, dword [ebp - 0x8c]
cmp dword [eax + 0x2c], edi
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x68]
jge 0x4a07dc
mov esi, dword [ebp - 0x1c]
mov dword [eax + 0x2c], esi
mov esi, dword [ebp - 0x78]
mov eax, ebx
mov dword [ebp - 0x3c], eax
cmp dword [ecx + 0x14], ebx
jle 0x4a0849
mov esi, dword [ebp - 0x8c]
add ecx, 0x24
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
test edx, edx
je 0x4a07ff
lea ecx, [edx + eax*4]
push dword [ebp - 0x34]
mov edx, esi
push dword [ecx]
mov ecx, edi
push ebx
call fcn.004886d1
add esp, 0xc
mov ecx, edi
push ebx
push dword [ebp - 0x80]
push dword [ebp - 0x34]
push 0x32
pop edx
call fcn.004746eb
mov eax, dword [ebp - 0x50]
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
add dword [ebp - 0x48], 8
inc ecx
inc dword [ebp - 0x34]
cmp ecx, dword [eax + 0x14]
mov eax, ecx
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x48]
jl 0x4a07f8
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x4a08a4
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x4a0865
mov edx, eax
mov ecx, esi
call fcn.0049afd1
mov ecx, eax
mov eax, dword [ebp - 0x50]
push dword [eax + 0x14]
push ecx
push ebx
push dword [eax + 0x14]
mov ecx, edi
push dword [ebp - 0x8c]
push 0x60
pop edx
call fcn.00474815
mov eax, dword [ebp - 0x50]
add esp, 0x14
mov ecx, edi
push dword [eax + 0x14]
push dword [ebp - 0x8c]
push dword [ebp - 0x80]
push dword [ebp - 0x40]
push 0x1d
pop edx
call fcn.00474a00
add esp, 0x10
jmp 0x4a08d3
cmp dword [ebp - 0x90], ebx
je 0x4a08d3
push dword [ebp - 0x8c]
mov eax, dword [edi + 0x6c]
mov ecx, edi
add eax, 2
push eax
push dword [ebp - 0x40]
push 0x1e
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x80]
add esp, 0xc
mov ecx, edi
call fcn.00474744
mov eax, dword [ebp - 0x4c]
mov edx, 0x87
push ebx
push dword [ebp - 0x94]
mov ecx, edi
test byte [eax + 0x1c], 0x80
push ebx
push 0x4b
pop eax
cmovne edx, eax
call fcn.004746eb
mov eax, dword [ebp - 0x40]
add esp, 0xc
dec eax
push eax
mov eax, dword [ebp - 0x50]
push dword [eax + 8]
push 0x431748
push dword [ebp - 0x60]
push edi
call fcn.00474786
add esp, 0x14
mov ecx, edi
push ebx
push 4
push dword [ebp - 0x5c]
push 0x54
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x80]
add esp, 0xc
mov ecx, edi
call fcn.00474ac0
mov edx, dword [ebp - 0x84]
test edx, edx
je 0x4a0941
mov ecx, esi
call fcn.004594d9
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x4a0766
mov eax, dword [ebp - 0x30]
mov ecx, edi
push ebx
inc eax
push eax
push ebx
push 0x27
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp - 0x70]
mov dword [eax + 8], ecx
test edx, edx
je 0x4a1e51
mov ecx, dword [ebp - 0x38]
jmp 0x4a059f
test ecx, ecx
je 0x4a1e51
xor edx, edx
push ebx
inc edx
call fcn.0049ec30
xor edx, edx
test al, al
pop ecx
setne dl
mov ecx, esi
call fcn.00499535
jmp 0x4a1e51
mov eax, dword [ebp - 0xa0]
or edx, 0xffffffff
push 0x64
mov dword [ebp - 0x8c], ebx
movzx eax, byte [eax]
mov al, byte [eax + 0x425d20]
mov byte [ebp - 0x79], al
mov eax, dword [ebp - 0x50]
cmp dword [eax], ebx
mov eax, dword [ebp - 0x54]
cmove eax, edx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x2c], 6
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x48], eax
test ecx, ecx
je 0x4a0a3d
lea edx, [ebp - 0x48]
call fcn.0045d174
test eax, eax
je 0x4a0a0c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x3c], eax
test eax, eax
jg 0x4a0a3d
push 0x64
pop eax
jmp 0x4a0a3a
mov eax, dword [ebp - 0x54]
test eax, eax
js 0x4a0a1f
mov ecx, eax
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x4a0a21
mov eax, ebx
mov ecx, dword [ebp - 0x38]
xor edx, edx
push eax
push dword [ebp - 0x58]
call fcn.004903e5
pop ecx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x48]
pop ecx
mov dword [ebp - 0x3c], eax
push ebx
push 1
lea ecx, [eax - 1]
push ecx
push 0x47
pop edx
mov ecx, edi
call fcn.004746eb
add esp, 0xc
mov dword [ebp - 0x4c], ebx
cmp dword [esi + 0x14], ebx
jle 0x4a1900
mov eax, dword [ebp - 0x54]
mov ecx, ebx
mov dword [ebp - 0x74], 0x10
mov dword [ebp - 0x40], ebx
test eax, eax
js 0x4a0a78
cmp ecx, eax
jne 0x4a18f3
mov eax, dword [ebp - 0x38]
mov ecx, eax
mov edx, dword [ebp - 0x4c]
cmp dword [eax + 0x78], 0
cmovne ecx, dword [eax + 0x78]
call fcn.0049552b
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x4c]
add ecx, ecx
mov byte [eax + 0x17], bl
mov eax, dword [esi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, ebx
mov dword [ebp - 0x5c], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4a18ed
mov edi, dword [ebp - 0x40]
cmp dword [ebp - 0x8c], 0
mov edx, dword [eax + 8]
mov dword [ebp - 0x1c], edx
je 0x4a0acc
cmp dword [ebp - 0x8c], edx
jne 0x4a0aee
test byte [edx + 0x1c], 0x80
jne 0x4a0ad3
inc ecx
mov eax, dword [ebp - 0x1c]
mov edx, ebx
mov eax, dword [eax + 8]
jmp 0x4a0ae2
mov eax, dword [eax + 0x14]
inc ecx
inc edx
test eax, eax
jne 0x4a0add
mov eax, dword [ebp - 0x30]
cmp edx, edi
cmovg edi, edx
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x4a0ab5
mov dword [ebp - 0x40], edi
mov edi, dword [ebp - 0x68]
test ecx, ecx
je 0x4a18ed
cmp dword [ebp - 0x8c], 0
lea eax, [ecx + 1]
push ebx
cmove eax, ecx
mov ecx, esi
lea eax, [eax*4 + 4]
push eax
call fcn.004597ba
mov dword [ebp - 0x48], eax
pop ecx
pop ecx
test eax, eax
je 0x4a1900
cmp dword [ebp - 0x8c], 0
mov ecx, ebx
je 0x4a0b40
xor ecx, ecx
mov dword [eax + 4], ebx
inc ecx
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4a0b98
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x40], eax
mov edx, dword [esi + 8]
test ebx, ebx
je 0x4a0b6a
cmp ebx, edx
jne 0x4a0b8a
test byte [edx + 0x1c], 0x80
jne 0x4a0b77
mov eax, dword [edx + 0x14]
inc ecx
mov dword [edi + ecx*4], eax
mov edx, dword [edx + 8]
jmp 0x4a0b86
mov eax, dword [edx + 0x2c]
inc ecx
mov dword [edi + ecx*4], eax
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x4a0b7c
mov esi, dword [esi]
test esi, esi
jne 0x4a0b5f
mov edi, dword [ebp - 0x68]
xor ebx, ebx
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x40]
add edx, 8
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x2c], edx
jge 0x4a0bae
mov dword [eax + 0x2c], edx
push 1
push ecx
push 2
mov edx, 0x9b
mov byte [eax + 0x13], bl
mov ecx, edi
mov dword [eax + 0x1c], ebx
call fcn.004746eb
add esp, 0xc
mov edx, eax
mov ecx, edi
push 0xfffffffffffffff2
push dword [ebp - 0x48]
call fcn.00474eab
mov eax, dword [ebp - 0x4c]
mov ecx, edi
movzx edx, al
call fcn.00474c95
push ebx
push ebx
push 2
push 0x32
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x4c]
add esp, 0x14
mov ecx, dword [esi + 0x10]
add edx, edx
mov edi, eax
push dword [ecx + edx*8]
push 0x43174c
push esi
call fcn.0045b770
mov ecx, dword [ebp - 0x68]
add esp, 0xc
mov esi, eax
push ebx
push 3
push ebx
push 0x75
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, eax
push 0xfffffffffffffffa
push esi
mov esi, dword [ebp - 0x68]
mov ecx, esi
call fcn.00474eab
push 3
push 3
push 2
push 0x6f
pop edx
mov ecx, esi
call fcn.004746eb
add esp, 0x14
mov ecx, esi
call fcn.0049efd5
mov edx, edi
mov edi, esi
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4a18ea
mov eax, dword [eax + 8]
or dword [ebp - 0x6c], 0xffffffff
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x94], ebx
cmp byte [eax + 0x2b], 0
jne 0x4a18e0
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x4a0c98
cmp ecx, eax
jne 0x4a18e0
cmp byte [ebp - 0x79], 0x71
je 0x4a0ce1
test byte [eax + 0x1c], 0x80
je 0x4a0ce1
mov ecx, eax
call fcn.00490d43
mov esi, dword [ebp - 0x38]
mov ecx, esi
mov dword [ebp - 0x64], eax
movzx edx, word [eax + 0x32]
call fcn.0048b563
mov edx, eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x48], edx
movzx ecx, word [eax + 0x32]
dec ecx
add ecx, edx
push ecx
push edx
push 1
push 0x4b
pop edx
mov ecx, edi
call fcn.004746eb
mov eax, dword [ebp - 0x44]
add esp, 0xc
jmp 0x4a0cea
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x48], ebx
lea ecx, [ebp - 0x90]
mov edx, eax
push ecx
lea ecx, [ebp - 0x50]
push ecx
push ebx
push 1
push ebx
push 0x70
mov ecx, esi
call fcn.0049d815
push ebx
push 7
push ebx
push 0x47
pop edx
mov ecx, edi
call fcn.004746eb
mov eax, dword [ebp - 0x44]
add esp, 0x24
mov eax, dword [eax + 8]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x4a0d4c
mov esi, dword [ebp - 0x60]
push 8
pop eax
mov dword [ebp - 0x30], eax
push ebx
push eax
push ebx
push 0x47
pop edx
mov ecx, edi
call fcn.004746eb
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov esi, dword [esi + 0x14]
inc eax
mov dword [ebp - 0x30], eax
test esi, esi
jne 0x4a0d2b
mov esi, dword [ebp - 0x38]
push ebx
push ebx
push dword [ebp - 0x50]
mov ecx, edi
push 0x24
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push ebx
push 1
push 7
push 0x56
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x44]
add esp, 0xc
mov dword [ebp - 0x24], eax
test byte [ecx + 0x1c], 0x80
jne 0x4a0dbe
movsx eax, word [ecx + 0x22]
or edx, 0xffffffff
mov dword [ebp - 0x60], eax
test eax, eax
jle 0x4a0db0
mov edi, dword [ecx + 4]
mov ecx, eax
mov esi, dword [ebp - 0x74]
add edi, 0xe
test byte [edi], 0x20
lea eax, [edx + 1]
cmovne eax, edx
add edi, esi
mov edx, eax
sub ecx, 1
jne 0x4a0d95
mov edi, dword [ebp - 0x68]
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
movsx eax, word [ecx + 0x20]
lea ecx, [edx - 1]
cmp edx, eax
cmovne ecx, edx
jmp 0x4a0dc8
call fcn.00490d43
movzx ecx, word [eax + 0x34]
dec ecx
test ecx, ecx
js 0x4a0de9
push 3
push ecx
push dword [ebp - 0x50]
mov ecx, edi
push 0x5e
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push 3
pop edx
call fcn.00474caa
cmp byte [ebp - 0x79], 0x71
je 0x4a0ec3
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a0ec3
movzx eax, word [eax + 0x32]
mov ecx, edi
mov esi, dword [ebp - 0x48]
push eax
push esi
push ebx
push dword [ebp - 0x50]
push 0x29
pop edx
call fcn.00474a00
mov ecx, dword [ebp - 0x68]
mov edi, eax
push ebx
push ebx
push esi
push 0x32
pop edx
call fcn.004746eb
mov eax, dword [ebp - 0x44]
add esp, 0x1c
push dword [eax]
push 0x431764
push dword [ebp - 0x78]
call fcn.0045b770
mov ecx, dword [ebp - 0x68]
add esp, 0xc
mov esi, eax
push ebx
push 3
push ebx
push 0x75
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, eax
push 0xfffffffffffffffa
push esi
mov esi, dword [ebp - 0x68]
mov ecx, esi
call fcn.00474eab
pop ecx
pop ecx
mov ecx, esi
call fcn.0049efd5
mov edx, edi
mov ecx, esi
call fcn.00474f68
mov ecx, dword [esi + 0x6c]
lea edx, [edi + 1]
mov edi, esi
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x60], ebx
mov dword [eax + 8], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x64]
cmp cx, word [eax + 0x32]
jae 0x4a0ec3
mov edi, ebx
mov ebx, eax
mov eax, dword [ebp - 0x48]
mov edx, ebx
add eax, edi
mov ecx, esi
push eax
push edi
push dword [ebp - 0x50]
call fcn.004885dd
movzx eax, word [ebx + 0x32]
add esp, 0xc
inc edi
cmp edi, eax
jl 0x4a0e9f
mov edi, dword [ebp - 0x68]
xor ebx, ebx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x80], ebx
movzx eax, word [ecx + 0x1e]
and eax, 1
mov dword [ebp - 0x9c], eax
xor eax, eax
cmp ax, word [ecx + 0x22]
jge 0x4a1304
mov eax, ebx
mov dword [ebp - 0x40], ebx
mov edx, dword [ecx + 4]
add edx, eax
movsx eax, word [ecx + 0x20]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x80], eax
je 0x4a12e2
cmp dword [ebp - 0x9c], 0
je 0x4a0f16
mov eax, dword [edx + 4]
and eax, 0xf0
cmp dword [ebp - 0x74], eax
sbb eax, eax
neg eax
jmp 0x4a0f1f
xor eax, eax
cmp byte [edx + 8], 0x41
setg al
test byte [edx + 4], 0xf
mov dword [ebp - 0x5c], eax
jne 0x4a0f30
test eax, eax
je 0x4a12e2
test byte [edx + 0xe], 0x20
mov dword [ebp - 0x84], 5
je 0x4a0f69
push 3
push dword [ebp - 0x80]
mov edx, ecx
mov ecx, edi
push dword [ebp - 0x50]
call fcn.004886d1
add esp, 0xc
mov dword [ebp - 0x88], 3
or ecx, 0xffffffff
mov dword [ebp - 0x70], ecx
jmp 0x4a0fff
cmp word [edx + 0xc], bx
je 0x4a0fd0
mov dword [ebp - 0x34], ebx
call fcn.00490862
mov dword [ebp - 0x60], eax
test eax, eax
je 0x4a0fcd
push ecx
movzx ecx, byte [edx + 8]
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x78]
push ecx
movzx ecx, byte [eax + 0x54]
push ecx
mov ecx, eax
call fcn.004740dd
mov ecx, dword [ebp - 0x34]
add esp, 0x10
mov dword [ebp - 0x60], ecx
test ecx, ecx
je 0x4a0fcd
movzx eax, word [ecx + 0x10]
and eax, 0x3f
movzx eax, byte [eax + 0x428b20]
mov dword [ebp - 0x84], eax
call fcn.004736d4
mov ecx, dword [ebp - 0x60]
mov edx, ecx
mov ecx, dword [ecx + 0x14]
call fcn.004594d9
mov ecx, dword [ebp - 0x44]
test byte [ecx + 0x1c], 0x80
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x80]
movzx edx, ax
je 0x4a0ff0
call fcn.00490d43
mov ecx, eax
call fcn.00490d5b
jmp 0x4a0ff5
call fcn.00490d7b
mov ecx, dword [ebp - 0x70]
cwde
mov dword [ebp - 0x88], eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [ebp - 0x60], eax
lea edx, [eax - 1]
mov dword [esi + 0x38], edx
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
test byte [esi + 4], 0xf
je 0x4a1104
push dword [ebp - 0x84]
push dword [ebp - 0x88]
push edx
push ecx
push 0x12
pop edx
mov ecx, edi
call fcn.00474a00
add esp, 0x10
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0x70], 0
mov ecx, edi
jge 0x4a1055
push 0xf
pop edx
call fcn.00474c95
mov eax, dword [ebp - 0xa4]
jmp 0x4a1088
push 0xd
pop edx
call fcn.00474c95
push 3
push dword [ebp - 0x88]
mov ecx, edi
push dword [ebp - 0x70]
push 0x5e
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push ebx
push dword [ebp - 0x34]
push 3
push 0x33
pop edx
call fcn.004746eb
add esp, 0xc
push dword [esi]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x44]
push dword [eax]
push 0x431788
push dword [ebp - 0x78]
call fcn.0045b770
push ebx
push 3
push ebx
push 0x75
pop edx
mov ecx, edi
mov esi, eax
call fcn.004746eb
add esp, 0x1c
mov edx, eax
mov ecx, edi
push 0xfffffffffffffffa
push esi
call fcn.00474eab
mov eax, dword [ebp - 0x5c]
pop ecx
pop ecx
test eax, eax
je 0x4a1193
mov edx, dword [ebp - 0x60]
mov ecx, edi
call fcn.00474744
mov edx, dword [ebp - 0xa4]
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp - 0x98]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x9c], 0
je 0x4a119e
test eax, eax
je 0x4a12c4
push dword [ebp - 0x84]
mov ecx, edi
push dword [ebp - 0x88]
push edx
push dword [ebp - 0x70]
push 0x12
pop edx
call fcn.00474a00
mov eax, dword [esi + 4]
mov ecx, edi
shr eax, 4
and eax, 0xf
movzx edx, byte [eax + 0x424077]
call fcn.00474c95
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + 4]
push dword [edx + eax]
mov eax, dword [esi + 4]
push dword [ecx]
shr eax, 4
and eax, 0xf
push dword [eax*4 + 0x40214c]
push 0x43179c
push dword [ebp - 0x78]
call fcn.0045b770
add esp, 0x24
mov ecx, edi
mov esi, eax
push ebx
push 3
push ebx
push 0x75
pop edx
call fcn.004746eb
add esp, 0xc
jmp 0x4a12b6
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
jmp 0x4a1107
cmp byte [esi + 8], 0x42
jne 0x4a11fb
push dword [ebp - 0x84]
mov ecx, edi
push dword [ebp - 0x88]
push edx
push dword [ebp - 0x70]
push 0x12
pop edx
call fcn.00474a00
push 0x1c
pop edx
mov ecx, edi
call fcn.00474c95
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + 4]
push dword [edx + eax]
push dword [ecx]
push 0x4317b4
push dword [ebp - 0x78]
call fcn.0045b770
push ebx
push 3
push ebx
push 0x75
pop edx
mov ecx, edi
mov esi, eax
call fcn.004746eb
add esp, 0x2c
jmp 0x4a12b6
cmp byte [esi + 8], 0x43
jl 0x4a12c4
push dword [ebp - 0x84]
mov esi, dword [ebp - 0x70]
mov ecx, edi
push dword [ebp - 0x88]
push edx
push esi
push 0x12
pop edx
call fcn.00474a00
add esp, 0x10
mov ecx, edi
push 0x1b
pop edx
call fcn.00474c95
test esi, esi
js 0x4a1244
mov edx, dword [ebp - 0x44]
push 3
push dword [ebp - 0x80]
push dword [ebp - 0x50]
call fcn.004886d1
add esp, 0xc
push ebx
push 1
push 3
push 0x60
pop edx
mov ecx, edi
call fcn.004746eb
add esp, 0xc
or esi, 0xffffffff
mov edx, eax
mov ecx, edi
push esi
push 0x420b80
call fcn.00474eab
push dword [ebp - 0x84]
mov ecx, edi
push 3
push dword [ebp - 0x34]
push esi
push 0x12
pop edx
call fcn.00474a00
push 0x1c
pop edx
mov ecx, edi
call fcn.00474c95
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + 4]
push dword [edx + eax]
push dword [ecx]
push 0x4317cc
push dword [ebp - 0x78]
call fcn.0045b770
push ebx
push 3
push ebx
push 0x75
pop edx
mov ecx, edi
mov esi, eax
call fcn.004746eb
add esp, 0x34
push 0xfffffffffffffffa
push esi
mov edx, eax
mov ecx, edi
call fcn.00474eab
pop ecx
pop ecx
mov edx, dword [ebp - 0x60]
mov ecx, edi
call fcn.00474ac0
mov ecx, edi
call fcn.0049efd5
mov edx, dword [ebp - 0x34]
mov ecx, edi
call fcn.00474ac0
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov esi, dword [ebp - 0x38]
inc edx
mov dword [ebp - 0x40], eax
movsx eax, word [ecx + 0x22]
cmp edx, eax
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x40]
jl 0x4a0ee7
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x4a1428
mov esi, dword [ebp - 0x78]
mov eax, dword [esi + 0x20]
and eax, 0x200
or eax, ebx
jne 0x4a1428
push ebx
mov ecx, esi
call fcn.004864f4
cmp byte [esi + 0x57], 0
pop ecx
mov dword [ebp - 0x30], eax
jne 0x4a1418
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov eax, dword [edx + 0x38]
dec eax
mov dword [ebp - 0x9c], eax
dec eax
mov dword [ebp - 0x98], eax
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0x50]
inc eax
mov dword [edx + 0x34], eax
mov eax, dword [ecx]
dec eax
mov dword [ebp - 0xa4], eax
test eax, eax
jle 0x4a13a5
mov esi, dword [ebp - 0xa4]
mov edi, edx
imul eax, eax, 0x14
add eax, 8
add eax, ecx
mov dword [ebp - 0x60], eax
push ebx
push dword [ebp - 0x9c]
push dword [eax]
push edi
call fcn.0048a31b
mov eax, dword [ebp - 0x60]
add esp, 0x10
dec esi
sub eax, 0x14
mov dword [ebp - 0x60], eax
test esi, esi
jg 0x4a1379
mov edi, dword [ebp - 0x68]
mov esi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x74]
push dword [ebp - 0x98]
push dword [ecx + 8]
push edx
call fcn.0048a018
mov edx, dword [ebp - 0x9c]
mov ecx, edi
call fcn.00474ac0
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x34], ebx
mov eax, dword [ebp - 0x44]
push dword [eax]
push 0x4317e0
push esi
call fcn.0045b770
add esp, 0x1c
mov ecx, edi
mov esi, eax
push ebx
push 3
push ebx
push 0x75
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, eax
mov ecx, edi
push 0xfffffffffffffffa
push esi
call fcn.00474eab
pop ecx
pop ecx
mov ecx, edi
call fcn.0049efd5
mov edx, dword [ebp - 0x98]
mov ecx, edi
call fcn.00474ac0
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4a1425
mov edx, eax
mov ecx, esi
call fcn.00486cac
mov ecx, dword [ebp - 0x44]
cmp byte [ebp - 0x79], 0x71
je 0x4a17d3
mov esi, dword [ecx + 8]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x4a17d3
mov eax, dword [ebp - 0x90]
push 8
pop ecx
sub ecx, eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x9c], ecx
mov ecx, dword [eax + 0x38]
dec ecx
mov dword [ebp - 0x60], ecx
mov dword [eax + 0x38], ecx
cmp dword [ebp - 0x64], esi
je 0x4a17c2
push dword [ebp - 0x6c]
lea ecx, [ebp - 0xa8]
mov edx, esi
push dword [ebp - 0x94]
push ecx
push ebx
push ebx
push dword [ebp - 0x50]
mov ecx, eax
call fcn.004971bb
mov ecx, dword [ebp - 0x70]
add ecx, dword [ebp - 0x9c]
push ebx
push 1
push ecx
push 0x56
pop edx
mov ecx, edi
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x94], esi
call fcn.004746eb
movzx eax, word [esi + 0x34]
add esp, 0x24
mov ecx, edi
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x60]
push dword [ebp - 0x70]
push 0x1d
pop edx
call fcn.00474a00
push 0x431800
push 3
pop edx
mov ecx, edi
mov esi, eax
call fcn.00474755
add esp, 0x14
mov ecx, edi
push 3
push 3
push 7
push 0x6f
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push 0x431808
push 4
pop edx
call fcn.00474755
pop ecx
push 3
push 3
push 4
push 0x6f
pop edx
mov ecx, edi
call fcn.004746eb
mov eax, dword [ebp - 0x40]
add esp, 0xc
mov ecx, edi
push dword [eax]
push 4
pop edx
call fcn.00474755
pop ecx
push 3
push 3
push 4
push 0x6f
pop edx
mov ecx, edi
mov dword [ebp - 0x34], eax
call fcn.004746eb
add esp, 0xc
mov ecx, edi
call fcn.0049efd5
mov dword [ebp - 0x98], eax
mov edx, esi
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x44]
test byte [eax + 0x1c], 0x80
jne 0x4a15de
push ebx
push 3
push dword [ebp - 0x70]
mov edx, 0x8e
mov ecx, edi
call fcn.004746eb
mov eax, dword [ebp - 0x40]
add esp, 0xc
mov ecx, dword [ebp - 0x6c]
dec ecx
movzx eax, word [eax + 0x34]
add eax, ecx
mov ecx, edi
push eax
push ebx
push 3
push 0x35
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
mov esi, eax
push 0x431820
push 3
pop edx
call fcn.00474755
pop ecx
push 3
push 3
push 7
push 0x6f
pop edx
mov ecx, edi
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push 0x431844
push 4
pop edx
call fcn.00474755
mov edx, dword [ebp - 0x34]
pop ecx
dec edx
mov ecx, edi
call fcn.00474744
mov edx, esi
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov esi, dword [ebp - 0x40]
xor eax, eax
mov edx, ebx
mov ecx, ebx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x30], ecx
cmp ax, word [esi + 0x32]
jae 0x4a16c6
mov ebx, dword [ebp - 0x38]
mov eax, dword [esi + 0x20]
cmp dword [eax + ecx*4], 0x4256c0
je 0x4a1645
test edx, edx
jne 0x4a1613
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x5c], eax
push 3
push ecx
push dword [ebp - 0x70]
mov ecx, edi
push 0x5e
pop edx
call fcn.004746eb
mov eax, dword [ebp - 0x30]
add esp, 0xc
add eax, dword [ebp - 0x6c]
mov ecx, edi
push eax
push dword [ebp - 0x5c]
push 3
push 0x34
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x30]
add esp, 0xc
mov edx, dword [ebp - 0x5c]
movzx eax, word [esi + 0x32]
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, eax
jl 0x4a15fa
push 0
pop ebx
test edx, edx
je 0x4a16c6
push ebx
push ebx
push ebx
push 9
pop edx
mov ecx, edi
call fcn.004746eb
mov edx, dword [ebp - 0x5c]
add esp, 0xc
mov ecx, edi
mov esi, eax
call fcn.00474ac0
push 0x431800
push 3
pop edx
mov ecx, edi
call fcn.00474755
pop ecx
push 3
push 3
push 7
push 0x6f
pop edx
mov ecx, edi
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push 0x431850
push 4
pop edx
call fcn.00474755
mov edx, dword [ebp - 0x34]
pop ecx
mov ecx, edi
lea edx, [edx - 1]
call fcn.00474744
mov edx, esi
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov esi, dword [ebp - 0x40]
mov dword [eax + 8], ecx
cmp byte [esi + 0x36], 0
je 0x4a1797
mov eax, dword [ebp - 0x38]
mov ecx, ebx
mov dword [ebp - 0x60], ecx
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x5c], eax
xor eax, eax
cmp ax, word [esi + 0x32]
jae 0x4a1729
mov eax, dword [esi + 4]
movsx edx, word [eax + ecx*2]
test edx, edx
js 0x4a1703
mov eax, dword [ebp - 0x44]
add edx, edx
mov eax, dword [eax + 4]
test byte [eax + edx*8 + 4], 0xf
jne 0x4a171d
mov eax, dword [ebp - 0x6c]
push ebx
push dword [ebp - 0x5c]
add eax, ecx
mov ecx, edi
push eax
push 0x32
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
movzx eax, word [esi + 0x32]
inc ecx
mov dword [ebp - 0x60], ecx
cmp ecx, eax
jl 0x4a16e9
push ebx
push ebx
push dword [ebp - 0x70]
mov ecx, edi
push 0x27
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0x5c]
add esp, 0xc
mov ecx, edi
mov esi, eax
call fcn.00474744
mov edx, esi
mov ecx, edi
call fcn.00474f68
mov esi, dword [ebp - 0x40]
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov ecx, edi
movzx eax, word [esi + 0x32]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x5c]
push dword [ebp - 0x70]
push 0x29
pop edx
call fcn.00474a00
push 0x43186c
push 3
pop edx
mov ecx, edi
call fcn.00474755
mov edx, dword [ebp - 0x34]
add esp, 0x14
mov ecx, edi
call fcn.00474744
mov edx, dword [ebp - 0x5c]
mov ecx, edi
call fcn.00474ac0
mov edx, dword [ebp - 0x98]
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp - 0xa8]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x38]
test edx, edx
je 0x4a17c2
mov ecx, dword [eax + 8]
call fcn.00474ac0
mov eax, dword [ebp - 0x38]
mov esi, dword [esi + 0x14]
inc dword [ebp - 0x70]
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x4a1457
mov esi, dword [ebp - 0x24]
mov ecx, edi
push ebx
push esi
push dword [ebp - 0x50]
push 0x27
pop edx
call fcn.004746eb
add esp, 0xc
lea edx, [esi - 1]
mov ecx, edi
call fcn.00474f68
cmp byte [ebp - 0x79], 0x71
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
je 0x4a18e0
push 0x431888
push 2
pop edx
mov ecx, edi
call fcn.00474755
mov eax, dword [ebp - 0x44]
pop ecx
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4a18c6
mov ecx, dword [ebp - 0x64]
push 8
pop esi
mov dword [ebp - 0x94], esi
cmp ecx, eax
je 0x4a18b1
mov eax, dword [ebp - 0x90]
mov ecx, edi
push ebx
add eax, 0xfffffff8
push 3
add eax, esi
push eax
push 0x62
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push 3
push ebx
push esi
push 0x35
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, 0x90
mov ecx, edi
mov esi, eax
call fcn.00474c95
mov eax, dword [ebp - 0x30]
push dword [eax]
push 4
pop edx
call fcn.00474755
pop ecx
push 3
push 2
push 4
push 0x6f
pop edx
mov ecx, edi
call fcn.004746eb
add esp, 0xc
mov ecx, edi
call fcn.0049efd5
mov edx, esi
mov ecx, edi
call fcn.00474f68
mov ecx, dword [edi + 0x6c]
mov esi, dword [ebp - 0x94]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x64]
mov eax, dword [eax + 0x14]
inc esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x94], esi
test eax, eax
jne 0x4a182f
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a18e0
movzx eax, word [eax + 0x32]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x38]
push eax
call fcn.0048b599
add esp, 4
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
jmp 0x4a0c61
mov esi, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x54]
inc ecx
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [esi + 0x14]
jl 0x4a0a69
push ecx
push 0x428b00
push 7
pop edx
mov ecx, edi
call fcn.00474bf1
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4a193c
xor eax, eax
mov dword [esi + 0x38], 0x4318a8
inc eax
sub eax, dword [ebp - 0x3c]
mov dword [esi + 8], eax
or eax, 0xffffffff
push 0xb
pop ecx
mov byte [esi + 0x29], al
mov byte [esi + 0x65], al
call fcn.004c42f3
mov dword [esi + 0x74], eax
mov esi, dword [edi + 0x6c]
xor edx, edx
mov ecx, edi
sub esi, 2
call fcn.00474f68
mov dword [eax + 0xc], esi
jmp 0x4a1e51
test ecx, ecx
jne 0x4a197b
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
call fcn.004a2b84
test eax, eax
jne 0x4a1e51
mov eax, dword [ebx]
movzx edx, byte [eax + 0x54]
mov edx, dword [edx*8 + 0x429220]
jmp 0x49f5c0
test byte [esi + 0x18], 0x40
jne 0x4a1e51
mov eax, dword [0x429220]
mov edi, 0x429220
test eax, eax
je 0x4a19cf
mov edx, eax
call fcn.0045c824
test eax, eax
je 0x4a19ac
mov ecx, dword [ebp - 0x58]
add edi, 8
mov eax, dword [edi]
test eax, eax
jne 0x4a1993
jmp 0x4a19cc
mov cl, byte [edi + 4]
movzx eax, cl
test cl, cl
push 2
pop ecx
cmovne ecx, eax
mov eax, dword [esi + 0x10]
mov dl, cl
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], cl
mov ecx, esi
call fcn.00495dfd
mov ecx, dword [ebp - 0x58]
cmp dword [edi], ebx
jne 0x4a1e51
push ecx
push 0x4318f4
push dword [ebp - 0x38]
call fcn.0045c6d7
jmp 0x49f512
mov eax, dword [edx + 8]
mov ecx, edi
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x30], eax
call fcn.00475211
cmp dword [ebp - 0x58], ebx
je 0x4a1a5f
mov edx, dword [ebp - 0x4c]
test byte [edx + 5], 8
jne 0x4a1a5f
push ecx
push 0x424584
push 2
pop edx
mov ecx, edi
call fcn.00474bf1
mov edi, eax
mov eax, dword [ebp - 0x54]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x58]
mov dword [edi + 4], eax
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x1c], eax
call fcn.0045d2c7
mov dword [edi + 0x20], eax
xor eax, eax
inc eax
mov word [edi + 0x16], ax
cmp dword [ebp - 0x30], eax
jne 0x4a1e51
mov eax, dword [esi + 0x20]
and eax, 0x10000000
or eax, ebx
je 0x4a1e51
mov byte [edi + 0x14], 0xb8
jmp 0x4a1e51
push ecx
push 0x4293a0
push 3
pop edx
mov ecx, edi
call fcn.00474bf1
pop ecx
pop ecx
mov ecx, dword [ebp - 0x54]
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0x20], ecx
mov ecx, edi
call fcn.00474ae6
jmp 0x4a1e51
mov eax, dword [ebp - 0x38]
mov esi, ebx
push ebx
mov dword [eax + 0x2c], 1
jmp 0x4a1aba
xor edx, edx
inc esi
push eax
inc edx
call fcn.00474755
pop ecx
push ebx
xor eax, eax
mov ecx, edi
inc eax
push eax
push eax
push 0x54
pop edx
call fcn.004746eb
add esp, 0xc
push esi
call fcn.004c6790
pop ecx
mov ecx, edi
test eax, eax
jne 0x4a1a9b
jmp 0x4a1a82
mov eax, dword [ebp - 0x50]
mov edx, ebx
push 0xc
cmp dword [eax], ebx
pop eax
cmovne eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
push 3
pop esi
test ecx, ecx
je 0x4a1b24
mov edx, 0x431594
call fcn.0045c824
test eax, eax
jne 0x4a1af3
xor edx, edx
inc edx
jmp 0x4a1b24
mov esi, dword [ebp - 0x58]
mov edx, 0x431910
mov ecx, esi
call fcn.0045c824
test eax, eax
jne 0x4a1b0e
push 2
pop edx
push 3
pop esi
jmp 0x4a1b24
mov edx, 0x43163c
mov ecx, esi
call fcn.0045c824
push 3
test eax, eax
mov edx, ebx
pop esi
cmove edx, esi
mov eax, dword [ebp - 0x38]
mov ecx, edi
push 1
push edx
mov edx, esi
mov dword [eax + 0x2c], esi
mov eax, dword [ebp - 0x24]
push eax
call fcn.004746eb
add esp, 0xc
push ebx
push esi
push 1
jmp 0x49f508
test ecx, ecx
je 0x4a1b58
call fcn.0045d2c7
push eax
push esi
call fcn.004c4ba7
pop ecx
pop ecx
cmp dword [esi + 0x110], 0x4c4b75
jne 0x49f3ac
mov ebx, dword [esi + 0x114]
jmp 0x49f3ac
push esi
call fcn.004c39d3
jmp 0x4a1e50
test ecx, ecx
je 0x4a1b97
call fcn.0045d2c7
mov ecx, eax
mov dword [ebp - 0x30], ecx
test cl, 2
je 0x4a1e51
jmp 0x4a1b9e
mov dword [ebp - 0x30], 0xfffe
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x90], eax
inc eax
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x44], ebx
je 0x4a1bbb
mov dword [ebp - 0x60], eax
jmp 0x4a1bca
mov ecx, dword [esi + 0x14]
dec ecx
mov dword [ebp - 0x60], ecx
cmp eax, ecx
jg 0x4a1d2b
mov ecx, eax
shl ecx, 4
mov dword [ebp - 0x34], ecx
cmp eax, 1
je 0x4a1d18
cmp dword [edx + 0x78], ebx
mov ecx, edx
cmovne ecx, dword [edx + 0x78]
mov edx, eax
call fcn.0049552b
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax + ecx + 0xc]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x94], edx
test edx, edx
je 0x4a1d12
mov edx, dword [edx + 8]
mov dword [ebp - 0x24], edx
test dword [edx + 0x1c], 0x100
je 0x4a1d05
mov ax, word [edx + 0x26]
add ax, 0x2e
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 8]
jmp 0x4a1c35
test byte [eax + 0x38], 0x80
je 0x4a1c83
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4a1c2c
cmp word [ebp - 0x1c], bx
je 0x4a1c83
mov ecx, dword [ebp - 0x38]
push 0x70
push edx
push dword [ebp - 0x54]
mov edx, dword [ebp - 0x90]
call fcn.0049af56
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov ecx, dword [ebp - 0x30]
cwde
and ecx, 1
add ecx, 2
push eax
mov eax, dword [edi + 0x6c]
add eax, ecx
mov ecx, edi
push eax
push dword [ebp - 0x90]
push 0x21
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x34]
add esp, 0xc
mov edx, dword [ebp - 0x24]
push dword [edx]
mov eax, dword [esi + 0x10]
push dword [eax + ecx]
push 0x431918
push esi
call fcn.0045b770
add esp, 0x10
mov dword [ebp - 0x1c], eax
test byte [ebp - 0x30], 1
je 0x4a1ce0
mov ecx, dword [ebp - 0x38]
call fcn.0048b52b
push ebx
mov esi, eax
mov ecx, edi
push esi
push ebx
push 0x75
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, eax
mov ecx, edi
push 0xfffffffffffffffa
push dword [ebp - 0x1c]
call fcn.00474eab
push ebx
push 1
push esi
push 0x54
pop edx
mov ecx, edi
call fcn.004746eb
mov esi, dword [ebp - 0x78]
add esp, 0x14
jmp 0x4a1d02
push ebx
push ebx
push ebx
mov edx, 0x94
mov ecx, edi
call fcn.004746eb
add esp, 0xc
mov edx, eax
mov ecx, edi
push 0xfffffffffffffffa
push dword [ebp - 0x1c]
call fcn.00474eab
pop ecx
pop ecx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
mov edx, dword [edx]
jmp 0x4a1bf8
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x38]
inc eax
add ecx, 0x10
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x34], ecx
cmp eax, dword [ebp - 0x60]
jle 0x4a1bd2
push ebx
push ebx
push ebx
mov edx, 0xa6
jmp 0x49f50b
test ecx, ecx
je 0x4a1d55
lea edx, [ebp - 0x2c]
call fcn.0045d0a0
test eax, eax
jne 0x4a1d55
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.0045900f
pop ecx
pop ecx
or eax, 0xffffffff
push eax
push eax
call fcn.0045900f
push edx
push eax
mov ecx, edi
call fcn.0049ee10
add esp, 0x10
jmp 0x4a1e51
test ecx, ecx
je 0x4a1db9
lea edx, [ebp - 0x2c]
call fcn.0045d0a0
test eax, eax
jne 0x4a1db9
or eax, 0xffffffff
push eax
push eax
call fcn.0045911a
pop ecx
pop ecx
mov ecx, eax
cmp dword [ebp - 0x28], ebx
jl 0x4a1db9
jg 0x4a1d9a
cmp dword [ebp - 0x2c], ebx
jbe 0x4a1db9
mov eax, ecx
or eax, edx
je 0x4a1dac
cmp edx, dword [ebp - 0x28]
jl 0x4a1db9
jg 0x4a1dac
cmp ecx, dword [ebp - 0x2c]
jbe 0x4a1db9
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.0045911a
pop ecx
pop ecx
or ecx, 0xffffffff
push ecx
push ecx
call fcn.0045911a
jmp 0x4a1d5f
test ecx, ecx
je 0x4a1df4
lea edx, [ebp - 0x2c]
call fcn.0045d0a0
test eax, eax
jne 0x4a1df4
cmp dword [ebp - 0x28], ebx
jl 0x4a1df4
mov eax, dword [ebp - 0x2c]
jg 0x4a1de3
cmp eax, ebx
jb 0x4a1df4
and eax, 0x7fffffff
push eax
push 0xb
push esi
call fcn.004c50ce
add esp, 0xc
mov eax, dword [esi + 0xa4]
jmp 0x4a1e45
test ecx, ecx
je 0x4a1e25
lea edx, [ebp - 0x2c]
call fcn.0045d0a0
test eax, eax
jne 0x4a1e25
cmp dword [ebp - 0x28], ebx
jl 0x4a1e25
mov eax, dword [ebp - 0x2c]
jg 0x4a1e1a
cmp eax, ebx
jb 0x4a1e25
and eax, 0x7fffffff
mov dword [esi + 0x1f0], eax
mov eax, dword [esi + 0x1f0]
jmp 0x4a1e45
test ecx, ecx
je 0x4a1e3f
call fcn.0045d2c7
push eax
push esi
call fcn.004c4437
pop ecx
pop ecx
mov eax, dword [esi + 0x1f4]
cdq
push edx
push eax
mov ecx, edi
call fcn.0049ee10
pop ecx
pop ecx
mov ebx, dword [ebp - 0x78]
mov ecx, ebx
mov edx, dword [ebp - 0xa0]
call fcn.004594d9
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x4a1e71
mov edx, eax
mov ecx, ebx
call fcn.004594d9
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004caec8
leave
ret