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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x482ba4
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1019c
call fcn.0046dd30
mov eax, dword [0x49e390]
xor eax, esp
mov dword [esp + 0x10198], eax
push ebx
push esi
push edi
mov eax, dword [0x49e390]
xor eax, esp
push eax
lea eax, [esp + 0x101b0]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x10], edi
call fcn.0042f269
mov esi, eax
call fcn.0042f415
push 0x48d2f8
call fcn.0041a152
xor ebx, ebx
cmp dword [0x4a9fe8], ebx
pop ecx
jne 0x42809a
mov esi, 0x4a9fe0
call fcn.0042ec1c
cmp dword [0x4a9fe8], ebx
je 0x4280d4
mov ax, word [0x4a97b0]
cmp ax, bx
jne 0x4280c9
push ebx
call fcn.0045f25f
pop ecx
push eax
call fcn.00461fad
pop ecx
call fcn.00461fba
cdq
mov ecx, 0x5ecb
idiv ecx
add edx, 0x2134
push edx
jmp 0x4280ca
push eax
mov ecx, 0x4a9fe0
call fcn.0042ecc9
cmp dword [0x4a9ff8], ebx
jne 0x4280ee
mov esi, 0x4a9ff0
call fcn.0042ec1c
cmp dword [0x4a9ff8], ebx
je 0x4280fd
push 0xa5e
mov ecx, 0x4a9ff0
call fcn.0042ecc9
mov ax, word [0x4a9fec]
push edi
mov word [0x4a9fbc], ax
call fcn.004243e2
mov eax, edi
call fcn.0044ab9a
test eax, eax
je 0x42812e
mov eax, edi
call fcn.0044ab9a
push eax
push 0x48d308
call fcn.0041a152
pop ecx
pop ecx
movzx eax, byte [0x4a96e5]
push eax
push 0x48d324
mov dword [0x4aac58], eax
call fcn.0041a152
pop ecx
pop ecx
call fcn.0042c579
mov ecx, eax
call fcn.0042c5db
mov esi, dword [0x484208]
lea eax, [edi + 0xbc]
mov ebx, 0x7530
mov dword [edi + 0x98], ebx
mov dword [edi + 0xa4], 0x2bf20
mov dword [edi + 0x8c], 0x1e
mov dword [edi + 0xc0], 0x6ddd00
mov dword [esp + 0x4c], eax
call esi
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
mov dword [edi + 0xcc], 0x493e0
mov dword [edi + 0x68], 0x36ee80
mov dword [edi + 0x74], 0xea60
mov dword [edi + 0x80], 0x1388
mov dword [edi + 0x5c], ebx
call esi
xor ecx, ecx
mov dword [edi + 0x58], eax
lea eax, [edi + 0x4c]
mov dword [edi + 0x50], 0xbb8
mov dword [esp + 0x60], eax
mov dword [eax], ecx
mov dword [edi + 0x44], 0x3e8
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x101b8], ecx
cmp dword [0x4a9fd8], 0
je 0x42824a
mov esi, 0x4a9fd0
push 0
mov ecx, esi
call fcn.0043930c
cmp eax, 1
jne 0x42824a
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1a8]
push eax
mov ecx, esi
call fcn.00439338
test eax, eax
jle 0x42824a
cmp eax, 0x14
jb 0x42823d
lea edx, [esp + 0x194]
mov ebx, eax
lea ecx, [esp + 0x1a4]
call fcn.0042edc9
jmp 0x42824a
push eax
push 0x48d6e8
call fcn.0041a152
pop ecx
pop ecx
cmp dword [0x4a9ff8], 0
je 0x4282ab
push 0
mov ecx, 0x4a9ff0
call fcn.0043930c
cmp eax, 1
jne 0x4282ab
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1a8]
push eax
mov ecx, 0x4a9ff0
call fcn.00439338
test eax, eax
jle 0x4282ab
cmp eax, 0x14
jb 0x42829e
lea edx, [esp + 0x194]
mov ebx, eax
lea ecx, [esp + 0x1a4]
call fcn.0042edc9
jmp 0x4282ab
push eax
push 0x48d6e8
call fcn.0041a152
pop ecx
pop ecx
push dword [edi + 0x8c]
mov esi, 0x4a9fe0
mov ecx, esi
call fcn.0043930c
push 0
push dword [edi + 0x24]
mov ebx, eax
call fcn.00436e9b
test al, al
pop ecx
pop ecx
jne 0x428f23
cmp ebx, 1
jne 0x428329
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1a8]
push eax
mov ecx, esi
call fcn.00439338
mov ebx, eax
call dword [0x484208]
test ebx, ebx
mov dword [0x4a97b8], eax
jle 0x428335
cmp ebx, 0x14
jb 0x42831a
lea edx, [esp + 0x194]
lea ecx, [esp + 0x1a4]
call fcn.0042edc9
jmp 0x428335
push ebx
push 0x48d6e8
call fcn.0041a152
pop ecx
pop ecx
jmp 0x428335
test ebx, ebx
je 0x428335
push 0xa
call dword [0x48411c]
push 1
lea esi, [edi + 0x88]
call fcn.0041bf62
test eax, eax
je 0x4281ea
xor ebx, ebx
cmp dword [edi + 0xac], ebx
jne 0x42859b
cmp dword [edi + 0xb0], 1
jne 0x42859b
cmp dword [esp + 0x24], ebx
je 0x42837c
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 2
jne 0x428586
lea esi, [edi + 0x30]
mov dword [edi + 0x8c], 0x3e8
mov dword [esp + 0x1c], esi
call fcn.00429c8c
test eax, eax
je 0x4281ea
push dword [0x4aa02c]
call dword [0x484538]
mov ebx, eax
test ebx, ebx
je 0x428439
lea esi, [esp + 0x20]
call fcn.00429ef2
mov eax, dword [ebx + 0xc]
xor esi, esi
cmp dword [eax], esi
je 0x4283e8
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea edi, [esp + 0x24]
call fcn.004168ce
mov eax, dword [ebx + 0xc]
inc esi
lea eax, [eax + esi*4]
cmp dword [eax], 0
jne 0x4283c2
mov edi, dword [esp + 0x10]
push 0
call fcn.0045f25f
pop ecx
push eax
call fcn.00461fad
xor ebx, ebx
cmp dword [esp + 0x28], ebx
pop ecx
je 0x42840a
mov ebx, dword [esp + 0x28]
sub ebx, dword [esp + 0x24]
sar ebx, 2
call fcn.00461fba
xor edx, edx
div ebx
cmp dword [esp + 0x24], 0
mov esi, edx
je 0x42842b
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 2
cmp esi, eax
jb 0x428430
call fcn.0045fb07
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + esi*4]
jmp 0x42843c
or ebx, 0xffffffff
push dword [0x4aa02c]
lea ecx, [esp + 0x17c]
call fcn.00404587
test bl, bl
mov byte [esp + 0x101b8], 1
mov dword [esp + 0x14], ebx
je 0x428469
lea eax, [esp + 0x14]
call fcn.004387eb
jmp 0x42846b
xor eax, eax
xor esi, esi
cmp eax, esi
jne 0x4284ed
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
cmp ecx, 3
mov eax, 0x1388
jle 0x428489
imul ecx, ecx, 0x1388
mov eax, ecx
cmp dword [esp + 0x190], 0x10
mov ecx, dword [esp + 0x17c]
jae 0x4284a1
lea ecx, [esp + 0x17c]
xor edx, edx
mov ebx, 0x3e8
div ebx
push eax
push ecx
push 0x48d338
call fcn.0041a152
mov eax, dword [edi + 0x24]
add esp, 0xc
cmp eax, esi
je 0x4284d1
push esi
push eax
call fcn.00436e9b
test al, al
pop ecx
pop ecx
jne 0x428f42
push esi
push 1
lea ecx, [esp + 0x180]
mov byte [esp + 0x101c0], 0
call fcn.00401a4d
jmp 0x4281ea
cmp dword [esp + 0x190], 0x10
mov eax, dword [esp + 0x17c]
jae 0x428505
lea eax, [esp + 0x17c]
mov esi, dword [0x48453c]
push ebx
mov dword [esp + 0x18], eax
call esi
push eax
push dword [esp + 0x18]
push 0x48d36c
call fcn.0041a152
add esp, 0xc
push ebx
mov dword [edi + 0x8c], 0x1e
call esi
push eax
lea esi, [esp + 0x78]
call fcn.0041a40c
mov byte [esp + 0x101b8], 2
mov eax, dword [eax]
mov esi, 0x4aaacc
call fcn.00404a39
lea eax, [esp + 0x78]
cmp dword [esp + 0x74], eax
je 0x428563
push dword [esp + 0x74]
call fcn.0045f472
pop ecx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
push ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov byte [esp + 0x101bc], cl
push 1
lea ecx, [esp + 0x180]
call fcn.00401a4d
xor ebx, ebx
call fcn.004275c0
mov esi, dword [esp + 0x10]
xor edi, edi
push 2
inc edi
call fcn.00425053
mov edi, esi
cmp dword [edi + 0xac], 1
jl 0x428712
cmp dword [0x4a9fac], ebx
jne 0x4286ca
lea esi, [edi + 0x30]
call fcn.00429c8c
cmp eax, 1
jne 0x4286ca
push dword [0x4aa028]
call dword [0x484538]
cmp eax, ebx
je 0x4285ee
movsx ecx, word [eax + 0xa]
mov eax, dword [eax + 0xc]
push ecx
push dword [eax]
lea eax, [esp + 0x50]
push eax
call fcn.0045eab0
add esp, 0xc
jmp 0x4285f3
or dword [esp + 0x48], 0xffffffff
push dword [0x4aa028]
lea ecx, [esp + 0x17c]
call fcn.00404587
mov byte [esp + 0x101b8], 3
mov eax, dword [esp + 0x48]
test al, al
mov dword [esp + 0x1c], eax
je 0x428624
lea eax, [esp + 0x1c]
call fcn.004387eb
jmp 0x428626
xor eax, eax
cmp eax, ebx
jne 0x42866e
mov ecx, dword [esi]
cmp ecx, 3
mov eax, 0x1388
jle 0x42863e
imul ecx, ecx, 0x1388
mov eax, ecx
cmp dword [esp + 0x190], 0x10
mov ecx, dword [esp + 0x17c]
jae 0x428656
lea ecx, [esp + 0x17c]
xor edx, edx
mov esi, 0x3e8
div esi
push eax
push ecx
push 0x48d338
call fcn.0041a152
add esp, 0xc
cmp dword [esp + 0x190], 0x10
mov esi, dword [esp + 0x17c]
jae 0x428686
lea esi, [esp + 0x17c]
push dword [esp + 0x48]
call dword [0x48453c]
push eax
push esi
push 0x48d36c
call fcn.0041a152
add esp, 0xc
push 4
lea eax, [esp + 0x4c]
push eax
push 0x4a9fac
call fcn.0045eab0
add esp, 0xc
push ebx
push 1
lea ecx, [esp + 0x180]
mov byte [esp + 0x101c0], 0
call fcn.00401a4d
cmp dword [edi + 0xac], 1
jne 0x428712
cmp dword [edi + 0xb0], 2
jne 0x428801
mov eax, dword [0x4a9fa0]
or eax, dword [0x4a9fa4]
mov esi, dword [esp + 0x10]
jne 0x428706
push 0xffffffffffffffff
push 6
pop edi
call fcn.00425053
push esi
call fcn.00425543
jmp 0x428835
push 3
push 2
pop edi
call fcn.00425053
mov edi, esi
cmp dword [edi + 0xb0], 2
jne 0x428801
push 6
pop esi
cmp dword [edi + 0xac], esi
jne 0x42880a
call fcn.004246e3
test al, al
je 0x428806
cmp dword [esp + 0x24], ebx
je 0x428806
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 2
je 0x428806
mov edi, esi
mov esi, dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.00425053
push ebx
call fcn.0045f25f
pop ecx
push eax
call fcn.00461fad
cmp dword [esp + 0x28], ebx
pop ecx
jne 0x42877b
xor esi, esi
jmp 0x428786
mov esi, dword [esp + 0x28]
sub esi, dword [esp + 0x24]
sar esi, 2
call fcn.00461fba
xor edx, edx
div esi
cmp dword [esp + 0x24], ebx
mov esi, edx
je 0x4287a6
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 2
cmp esi, eax
jb 0x4287ab
call fcn.0045fb07
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
push eax
call dword [0x48453c]
push eax
lea esi, [esp + 0x78]
call fcn.0041a40c
mov byte [esp + 0x101b8], 4
mov eax, dword [eax]
mov esi, 0x4aaacc
call fcn.00404a39
lea eax, [esp + 0x78]
mov byte [esp + 0x101b8], 0
cmp dword [esp + 0x74], eax
je 0x4287f3
push dword [esp + 0x74]
call fcn.0045f472
pop ecx
push dword [esp + 0x10]
call fcn.00425543
jmp 0x428f1a
push 6
pop esi
jmp 0x42880a
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xac]
cmp eax, 2
jne 0x42883c
cmp dword [edi + 0xb0], 3
jne 0x428931
mov edi, esi
mov esi, dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.00425053
push esi
call fcn.00425641
mov edi, esi
jmp 0x4281ea
cmp dword [edi + 0xb0], 3
jne 0x428931
cmp eax, esi
jne 0x428931
call fcn.004246e3
test al, al
je 0x42892d
cmp dword [esp + 0x24], ebx
je 0x42892d
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 2
je 0x42892d
mov edi, esi
mov esi, dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.00425053
push ebx
call fcn.0045f25f
pop ecx
push eax
call fcn.00461fad
cmp dword [esp + 0x28], ebx
pop ecx
jne 0x42889e
xor esi, esi
jmp 0x4288a9
mov esi, dword [esp + 0x28]
sub esi, dword [esp + 0x24]
sar esi, 2
call fcn.00461fba
xor edx, edx
div esi
cmp dword [esp + 0x24], ebx
mov esi, edx
je 0x4288c9
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 2
cmp esi, eax
jb 0x4288ce
call fcn.0045fb07
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
push eax
call dword [0x48453c]
push eax
lea esi, [esp + 0x78]
call fcn.0041a40c
mov byte [esp + 0x101b8], 5
mov eax, dword [eax]
mov esi, 0x4aaacc
call fcn.00404a39
lea eax, [esp + 0x78]
mov byte [esp + 0x101b8], 0
cmp dword [esp + 0x74], eax
je 0x428916
push dword [esp + 0x74]
call fcn.0045f472
pop ecx
push dword [esp + 0x10]
mov word [0x4aaae8], 0x1f40
call fcn.00425641
jmp 0x428f1a
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xac]
cmp eax, 3
jne 0x428947
cmp dword [edi + 0xb0], 4
jne 0x42897a
jmp 0x42895d
cmp dword [edi + 0xb0], 4
jne 0x42897a
cmp eax, esi
jne 0x42897a
call fcn.004246e3
test al, al
je 0x428976
mov ebx, dword [esp + 0x10]
mov edi, esi
push 0xffffffffffffffff
mov esi, ebx
call fcn.00425053
call fcn.00425712
jmp 0x428bf5
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xac], 5
jne 0x4281ea
mov esi, dword [esp + 0x60]
push 1
call fcn.0041bf62
test eax, eax
je 0x4289ac
push 0xa5e
push 0xffffffffffffffff
push 0x14
call fcn.004259c1
call dword [0x484208]
mov dword [esi], eax
test byte [0x4a9faa], 0xf
jne 0x4289c7
lea esi, [edi + 0x38]
call fcn.00429ccf
test eax, eax
je 0x4289c7
push edi
call fcn.00425816
add edi, 0xd4
push edi
mov dword [esp + 0x20], edi
call dword [0x484310]
mov edi, 0x4aac68
call fcn.004242da
mov edi, 0x4ace00
call fcn.004242da
mov edi, 0x4ab320
call fcn.004242da
mov edi, 0x4ad4b8
call fcn.004242da
mov eax, dword [0x4ace0c]
mov ebx, dword [esp + 0x10]
and dword [0x4aa8f8], 0
and dword [0x4aa900], 0
mov dword [0x4aa8f4], eax
mov eax, dword [0x4ad4c4]
lea esi, [ebx + 0x40]
push 1
mov dword [0x4aa8fc], eax
call fcn.0041bf62
test eax, eax
je 0x428bb0
call dword [0x484208]
mov dword [esi], eax
mov eax, dword [0x4aabb4]
push 0
mov edi, 0xc8
push edi
mov esi, 0x4aac98
mov dword [esp + 0x1c], eax
call fcn.0042017a
push 0
push edi
mov edi, 0x4ace30
mov esi, edi
call fcn.0042017a
mov eax, dword [0x4aacb0]
mov ecx, dword [0x4aacb4]
mov edx, eax
or edx, ecx
je 0x428aa2
mov edx, dword [0x4aaca8]
sub edx, eax
mov eax, dword [0x4aacac]
sbb eax, ecx
mov dword [esp + 0x40], eax
jne 0x428a98
cmp edx, 0x3a98
jb 0x428aa2
mov eax, 0x4aac98
call fcn.0042028a
mov eax, edi
xor esi, esi
call fcn.0042028a
cmp edx, esi
jb 0x428af9
ja 0x428ab7
cmp eax, dword [esp + 0x14]
jb 0x428af9
mov eax, dword [0x4aac94]
cmp eax, 0xffffffff
jne 0x428ad1
push 0
push 0x14
mov esi, 0x4aac98
call fcn.0042017a
jmp 0x428af4
cmp eax, dword [esp + 0x14]
jb 0x428af9
test eax, eax
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
jge 0x428ae9
fadd qword [0x48ff58]
fmul qword [0x48ffc8]
call fcn.0047d446
mov dword [0x4aac94], eax
mov eax, edi
call fcn.0042028a
xor ecx, ecx
cmp edx, ecx
ja 0x428bb0
jb 0x428b16
cmp eax, dword [esp + 0x14]
ja 0x428bb0
mov eax, dword [0x4aac94]
cmp eax, 0xffffffff
je 0x428bb0
mov esi, eax
mov eax, 0x4aac98
call fcn.0042028a
and dword [esp + 0x54], 0
mov dword [esp + 0x58], edx
and dword [esp + 0x58], 0x80000000
and edx, 0x7fffffff
test esi, esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
fild qword [esp + 0x6c]
mov dword [esp + 0x3c], esi
fild qword [esp + 0x54]
fchs
faddp st(1)
fild dword [esp + 0x3c]
jge 0x428b6d
fadd qword [0x48ff58]
fmul qword [0x490008]
fcompp
fnstsw ax
test ah, 0x41
jp 0x428bb0
mov eax, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [0x4aac94]
shl ecx, 2
cmp eax, ecx
ja 0x428bb0
test eax, eax
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
jge 0x428ba0
fadd qword [0x48ff58]
fmul qword [0x490000]
call fcn.0047d446
mov dword [0x4aac94], eax
push dword [esp + 0x1c]
call dword [0x484330]
push ebx
call fcn.00429369
xor edi, edi
inc edi
lea esi, [ebx + 0xa0]
push edi
call fcn.0041bf62
test eax, eax
je 0x428c0b
lea eax, [ebx + 0x168]
cmp dword [eax], 0xf
mov dword [esp + 0x14], eax
jle 0x428bfc
push 3
push 2
pop edi
mov esi, ebx
call fcn.00425053
mov eax, dword [esp + 0x14]
and dword [eax], 0
mov edi, ebx
jmp 0x4281ea
mov ecx, ebx
call fcn.00425d50
call dword [0x484208]
mov dword [esi], eax
lea esi, [ebx + 0x94]
push edi
call fcn.0041bf62
test eax, eax
je 0x428c28
call fcn.00425ed7
call dword [0x484208]
mov dword [esi], eax
cmp byte [0x4a9707], 0
mov esi, dword [esp + 0x4c]
push edi
je 0x428c71
mov dword [ebx + 0xc0], 0xea60
call fcn.0041bf62
test eax, eax
je 0x428ca3
call fcn.0042c579
mov ecx, eax
call fcn.0042c66f
push 0
call fcn.0042c579
mov ebx, eax
call fcn.0042d4e2
call dword [0x484208]
mov ebx, dword [esp + 0x10]
mov dword [esi], eax
jmp 0x428ca3
mov dword [ebx + 0xc0], 0x6ddd00
call fcn.0041bf62
test eax, eax
je 0x428ca3
call fcn.0042c579
mov ecx, eax
call fcn.0042c8af
mov esi, dword [0x484208]
call esi
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
call esi
mov dword [ebx + 0x64], eax
lea esi, [ebx + 0xc8]
push 1
call fcn.0041bf62
test eax, eax
je 0x428cce
push 1
call fcn.0042c579
mov ebx, eax
call fcn.0042d4e2
call dword [0x484208]
mov ebx, dword [esp + 0x10]
mov dword [esi], eax
lea esi, [ebx + 0x64]
push 1
call fcn.0041bf62
test eax, eax
je 0x428d23
call fcn.0042c579
mov edi, eax
lea ebx, [edi + 0xc]
push ebx
call dword [0x484310]
mov eax, dword [edi]
jmp 0x428cfe
test eax, eax
je 0x428cfc
and dword [eax + 0x135], 0
mov eax, dword [eax]
cmp eax, edi
jne 0x428cf1
push ebx
call dword [0x484330]
push 0
call fcn.0042c579
mov ebx, eax
call fcn.0042d4e2
call dword [0x484208]
mov ebx, dword [esp + 0x10]
mov dword [esi], eax
lea esi, [ebx + 0x70]
push 1
call fcn.0041bf62
test eax, eax
je 0x428d40
mov ecx, ebx
call fcn.004290e1
call dword [0x484208]
mov dword [esi], eax
lea edi, [ebx + 0x7c]
push 1
mov esi, edi
mov byte [esp + 0x1f], 0
call fcn.0041bf62
test eax, eax
je 0x428e80
push ecx
mov eax, esp
mov dword [esp + 0x40], esp
push 0x48d380
push eax
call fcn.00401969
push ecx
mov byte [esp + 0x101c0], 6
mov ecx, esp
mov dword [esp + 0x1c], esp
call fcn.004384a6
lea esi, [esp + 0x38]
mov byte [esp + 0x101c0], 0
call fcn.0043765f
mov byte [esp + 0x101c0], 7
mov eax, dword [esp + 0x38]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
call fcn.00401c3f
add eax, 0x10
mov dword [esi], eax
call fcn.004374fb
test al, al
pop ecx
je 0x428dda
mov eax, dword [esp + 0x30]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
call fcn.00401c3f
add eax, 0x10
mov dword [esi], eax
call fcn.0043751b
pop ecx
push ecx
mov eax, esp
mov dword [esp + 0x40], esp
push 0x48d38c
push eax
call fcn.00401969
push ecx
mov byte [esp + 0x101c0], 8
mov ecx, esp
mov dword [esp + 0x1c], esp
call fcn.004384a6
lea esi, [esp + 0x58]
mov byte [esp + 0x101c0], 7
call fcn.0043765f
mov byte [esp + 0x101c0], 9
mov eax, dword [esp + 0x58]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
call fcn.00401c3f
add eax, 0x10
mov dword [esi], eax
call fcn.004374fb
test al, al
pop ecx
je 0x428e60
mov eax, dword [esp + 0x50]
push ecx
add eax, 0xfffffff0
mov byte [esp + 0x1f], 1
mov dword [esp + 0x40], esp
mov esi, esp
call fcn.00401c3f
add eax, 0x10
mov dword [esi], eax
call fcn.0043751b
pop ecx
call dword [0x484208]
mov dword [edi], eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
call fcn.00401160
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.00401160
mov edi, dword [esp + 0x1c]
push edi
mov dword [esp + 0x68], edi
mov byte [esp + 0x6c], 1
call dword [0x484310]
mov byte [esp + 0x101b8], 0xa
cmp dword [ebx + 0xf4], 0
je 0x428f06
mov eax, dword [ebx + 0xf0]
mov eax, dword [eax]
add ebx, 0xec
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x34], 0
mov esi, dword [ebx + 4]
je 0x428ecb
cmp dword [esp + 0x34], ebx
je 0x428ed0
call fcn.0045fb07
cmp dword [esp + 0x38], esi
je 0x428f06
lea esi, [esp + 0x34]
call fcn.00429e85
mov esi, dword [eax + 4]
test esi, esi
je 0x428efb
mov ecx, esi
call fcn.0041d028
cmp byte [esp + 0x1b], 0
je 0x428efb
mov ecx, esi
call fcn.0041f3db
lea esi, [esp + 0x34]
call fcn.00429ea5
jmp 0x428ebb
push edi
mov byte [esp + 0x101bc], 0
call dword [0x484330]
mov byte [esp + 0x68], 0
mov edi, dword [esp + 0x10]
jmp 0x4281ea
mov eax, dword [edi + 0xac]
cmp eax, 5
je 0x428f33
cmp eax, 6
jne 0x428f59
call fcn.00425e35
push 0x64
call dword [0x48411c]
jmp 0x428f59
push esi
push 1
lea ecx, [esp + 0x180]
mov byte [esp + 0x101c0], 0
call fcn.00401a4d
lea esi, [esp + 0x20]
call fcn.00429ef2
lea ebx, [edi + 0xd4]
push ebx
call dword [0x484310]
push edi
call fcn.00429369
mov eax, dword [edi + 0xf0]
mov eax, dword [eax]
add edi, 0xec
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edi
cmp dword [esp + 0x34], 0
mov esi, dword [edi + 4]
je 0x428f9b
cmp dword [esp + 0x34], edi
je 0x428fa0
call fcn.0045fb07
cmp dword [esp + 0x38], esi
je 0x428fb6
lea esi, [esp + 0x34]
call fcn.00429e85
call fcn.00429ea5
jmp 0x428f8b
call fcn.00429aee
push ebx
mov ebx, dword [0x484330]
call ebx
call fcn.0042f269
push eax
call fcn.0042f481
call fcn.0042f269
mov eax, dword [0x4a97c0]
test eax, eax
je 0x428ff3
push eax
mov esi, eax
call fcn.0042f1a4
push esi
call fcn.0045ea9c
and dword [0x4a97c0], 0
pop ecx
call fcn.0042c579
mov edi, dword [eax + 8]
test edi, edi
je 0x42903f
xor ecx, ecx
mov eax, edi
mov edx, 0x125
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045d8aa
pop ecx
mov dword [esp + 0x30], eax
call fcn.0042c579
cmp dword [esp + 0x30], 0
je 0x429035
push dword [esp + 0x30]
mov ecx, edi
mov esi, eax
call fcn.0042d7ce
push dword [esp + 0x30]
call fcn.0045f19a
pop ecx
call fcn.0042c579
mov esi, eax
lea edi, [esi + 0xc]
push edi
call dword [0x484310]
cmp dword [esi], esi
je 0x429066
jmp 0x42905d
push eax
call fcn.0045ea9c
pop ecx
call fcn.00424295
test eax, eax
jne 0x429056
push edi
call ebx
mov eax, dword [0x4ac754]
mov ecx, dword [0x4ace0c]
push eax
push 0x48d398
mov dword [0x4aaaac], eax
mov dword [0x4aaab4], ecx
call fcn.0041a152
pop ecx
pop ecx
call fcn.0042c579
mov eax, dword [0x4a97bc]
test eax, eax
je 0x4290b4
mov esi, eax
add eax, 0xc
push eax
call dword [0x4842fc]
push esi
call fcn.0045ea9c
and dword [0x4a97bc], 0
pop ecx
lea esi, [esp + 0x20]
call fcn.004208f1
mov ecx, dword [esp + 0x101b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10198]
xor ecx, esp
call fcn.0045eaa1
mov esp, ebp
pop ebp
ret