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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
cmp byte [edi + 0x94], 0
mov dword [esp + 0xc], edi
je 0x46483d
xor ebx, ebx
cmp dword [edi + 0xd4], ebx
je 0x46380d
fld dword [0x5452bc]
jmp 0x463813
fld dword [0x544bf4]
fstp dword [edi + 0xe8]
push ecx
fld dword [ebp + 8]
fstp dword [esp]
call fcn.0047aa88
mov eax, dword [edi + 0xd4]
cmp eax, ebx
je 0x46386e
mov esi, dword [eax + 0x3c]
cmp esi, ebx
je 0x463856
mov ecx, esi
call fcn.00459639
test al, al
je 0x46384c
mov ecx, esi
call fcn.0045a92a
test al, al
je 0x46386e
cmp esi, ebx
je 0x463856
mov byte [esi + 0x77], bl
mov byte [esi + 0x78], bl
mov esi, dword [edi + 0x310]
mov dword [edi + 0xd4], ebx
call fcn.00464efd
mov eax, edi
call fcn.0048744a
cmp dword [edi + 0x164], 0x64
jne 0x464539
cmp dword [edi + 0x31c], ebx
jne 0x463a4a
cmp dword [edi + 0x318], ebx
jne 0x463a4a
cmp byte [edi + 0x2eb], bl
jne 0x463a4a
lea ebx, [edi + 0x44]
xor esi, esi
mov eax, ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
call fcn.0041ae5a
test eax, eax
jbe 0x46390e
add edi, 0x328
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
call fcn.00458652
cmp dword [eax], 0
je 0x4638d9
inc dword [esp + 0x1c]
jmp 0x4638ec
mov edi, ebx
call fcn.00458652
mov eax, dword [eax]
cmp dword [eax + 0x3c], 0
je 0x4638ec
inc dword [esp + 0x14]
mov eax, ebx
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x4638c5
cmp dword [esp + 0x14], 2
jl 0x46390a
cmp dword [esp + 0x1c], 1
jge 0x46398d
mov edi, dword [esp + 0xc]
lea ebx, [edi + 0x328]
mov eax, ebx
xor esi, esi
call fcn.0041ae5a
test eax, eax
jbe 0x46395a
mov edi, ebx
call fcn.00458652
cmp dword [eax], 0
je 0x46394a
call fcn.00458652
fldz
mov eax, dword [eax]
fstp dword [eax + 0x58]
call fcn.00458652
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x31c], eax
mov eax, ebx
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x463921
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x31c], 0
je 0x46397b
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 0
push 0x2710
mov ebx, edi
call fcn.00464aca
mov ebx, dword [esp + 0x18]
jmp 0x463991
mov edi, dword [esp + 0xc]
mov eax, ebx
call fcn.0041ae5a
cmp dword [esp + 0x14], eax
jne 0x463a4a
mov eax, dword [0x57b54c]
fld dword [0x544640]
fcomp dword [eax + 0x1ec]
fnstsw ax
test ah, 0x44
jnp 0x463a39
push 0x78
call fcn.004e0321
test eax, eax
pop ecx
je 0x4639d6
push 0x540be0
mov ebx, eax
call fcn.0049a466
mov ebx, eax
jmp 0x4639d8
xor ebx, ebx
fld dword [0x543fe4]
sub esp, 0x18
fstp dword [esp + 0x38]
mov edi, esp
fld dword [0x543fe0]
lea esi, [esp + 0x38]
fstp dword [esp + 0x3c]
fldz
fstp dword [esp + 0x40]
fld dword [0x544be8]
fstp dword [esp + 0x14]
fld dword [0x544b94]
fstp dword [esp + 0x10]
fld dword [0x543a1c]
fstp dword [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 3
movsd dword es:[edi], dword [esi]
call fcn.0049a526
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push 0
push 0
push 1
push ebx
call dword [eax + 0x10]
mov edi, dword [esp + 0xc]
fld dword [0x544640]
mov eax, dword [0x57b54c]
fstp dword [eax + 0x1ec]
mov esi, dword [edi + 0x31c]
test esi, esi
je 0x463bdb
mov ecx, esi
call fcn.00459639
test al, al
je 0x463bdb
fld1
fcomp dword [esi + 0x58]
fnstsw ax
test ah, 0x41
jp 0x463bdb
xor esi, esi
mov dword [edi + 0x31c], esi
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 0
mov byte [eax + 0x109], 1
lea ebx, [edi + 0x328]
mov eax, ebx
call fcn.0041ae5a
test eax, eax
jbe 0x463af9
mov edi, ebx
call fcn.00458652
cmp dword [eax], 0
je 0x463ae9
call fcn.00458652
fld1
mov eax, dword [eax]
fcomp dword [eax + 0x58]
fnstsw ax
test ah, 0x41
jp 0x463ae9
call fcn.00458652
fld dword [0x5448a8]
mov eax, dword [eax]
push 1
push ecx
mov ecx, dword [eax]
fstp dword [esp]
call fcn.0045b278
call fcn.00458652
and dword [eax], 0
mov eax, ebx
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x463aa8
mov edi, dword [esp + 0xc]
fld dword [0x5443d8]
lea eax, [esp + 0x1c]
push eax
fst dword [esp + 0x24]
lea eax, [esp + 0x24]
fstp dword [esp + 0x28]
fld dword [0x543fb4]
push eax
push dword [edi + 0x338]
fst dword [esp + 0x34]
fstp dword [esp + 0x38]
push edi
call fcn.0047fa53
test al, al
je 0x463ba9
mov esi, dword [edi + 0x338]
test esi, esi
jbe 0x463b6a
fld dword [esp + 0x2c]
push dword [esp + 0x1c]
fadd qword [0x543b50]
call fcn.005209b0
fld dword [esp + 0x2c]
fadd dword [esp + 0x24]
push eax
fmul qword [0x543938]
call fcn.005209b0
inc esi
push eax
push esi
mov esi, edi
call fcn.00487515
inc dword [edi + 0x338]
mov eax, dword [edi + 0x338]
cmp eax, 5
jbe 0x463b7f
push 5
jmp 0x463ba1
cmp eax, 4
jbe 0x463b88
push 4
jmp 0x463ba1
cmp eax, 3
jbe 0x463b91
push 3
jmp 0x463ba1
cmp eax, 2
jbe 0x463b9a
push 2
jmp 0x463ba1
cmp eax, 1
jbe 0x463bbe
push 1
push edi
call fcn.004882bd
jmp 0x463bbe
lea eax, [edi + 0x340]
cmp byte [eax], 0
jne 0x463bbb
and dword [edi + 0x338], 0
mov byte [eax], 0
lea esi, [edi + 0x324]
mov eax, dword [esi]
test eax, eax
je 0x463bd3
call fcn.00463661
mov edi, dword [esp + 0xc]
and dword [esi], 0
jmp 0x463ee0
mov esi, dword [edi + 0x318]
test esi, esi
je 0x463ee0
mov ecx, esi
call fcn.00459639
test al, al
je 0x463ee0
mov eax, dword [edi + 0x310]
call fcn.00412c16
test eax, eax
je 0x463cbc
mov eax, dword [esi]
and dword [eax + 0x3c], 0
mov eax, dword [edi + 0x310]
call fcn.00412c16
cmp eax, 1
jne 0x463c39
fld dword [0x544044]
push eax
mov eax, dword [edi + 0x318]
push ecx
mov ecx, dword [eax]
fstp dword [esp]
call fcn.0045b278
mov esi, dword [edi + 0x310]
mov eax, esi
call fcn.00464eb9
mov ebx, eax
mov eax, dword [edi + 0x310]
call fcn.00464eb9
fldz
push 0
mov dword [esp + 0x20], eax
push ecx
mov eax, esi
fstp dword [esp]
call fcn.00412c16
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
dec eax
neg eax
sbb al, al
inc al
push eax
mov eax, dword [ebx]
push dword [ecx]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x318]
call fcn.0047a301
mov eax, dword [edi + 0x310]
call fcn.00464eb9
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [edi + 0x318]
mov dword [eax + 0x3c], ecx
mov esi, dword [edi + 0x310]
mov eax, esi
call fcn.00412c16
test eax, eax
je 0x463ee0
add dword [esi + 8], 0xfffffff8
jmp 0x463ee0
lea ebx, [edi + 0x328]
mov eax, ebx
xor esi, esi
mov dword [esp + 0x10], ebx
call fcn.0041ae5a
test eax, eax
jbe 0x463d1e
mov edi, ebx
call fcn.00458652
cmp dword [eax], 0
je 0x463d0e
call fcn.00458652
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x318]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x463d0e
call fcn.00458652
fld dword [0x5439a8]
mov eax, dword [eax]
fstp dword [eax + 0x18]
call fcn.00458652
and dword [eax], 0
mov eax, ebx
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x463cd3
mov edi, dword [esp + 0xc]
xor esi, esi
mov dword [edi + 0x318], esi
call fcn.004014e2
fld dword [0x5443d8]
mov byte [eax + 0x18c], 0
mov byte [eax + 0x18d], 1
fst dword [esp + 0x30]
add eax, 0x84
fstp dword [esp + 0x34]
fld dword [0x543fb4]
lea eax, [esp + 0x1c]
push eax
fst dword [esp + 0x3c]
lea eax, [esp + 0x34]
fstp dword [esp + 0x40]
push eax
push dword [edi + 0x338]
push edi
call fcn.0047fa53
test al, al
jne 0x463e68
mov eax, ebx
mov dword [edi + 0x31c], esi
mov dword [esp + 0x18], esi
call fcn.0041ae5a
test eax, eax
jbe 0x463e39
mov esi, dword [esp + 0x18]
mov edi, ebx
call fcn.00458652
cmp dword [eax], 0
je 0x463e20
mov edi, dword [esp + 0x10]
call fcn.00458652
fldz
mov eax, dword [eax]
fstp dword [eax + 0x58]
call fcn.00458652
mov eax, dword [eax]
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x31c], eax
call fcn.00458652
mov eax, dword [eax]
fld dword [eax + 0x34]
fstp dword [esp + 0x20]
call fcn.00458652
mov eax, dword [eax]
fld dword [eax + 0x38]
mov ebx, dword [ebx]
push 0
fstp dword [esp + 0x28]
fldz
push 0
push 0xffffffffffffffff
fstp dword [esp + 0x34]
push ecx
push 1
sub esp, 0xc
mov edi, esp
lea esi, [esp + 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x53c7a8
push str.fx_tomb.cug
add ebx, 0x10
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
pop ecx
mov ecx, dword [esp + 0x18]
push eax
call dword [ebx]
mov ebx, dword [esp + 0x10]
inc dword [esp + 0x18]
mov eax, ebx
call fcn.0041ae5a
cmp dword [esp + 0x18], eax
jb 0x463d91
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x31c], 0
je 0x463e5a
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 0
push 0x2710
mov ebx, edi
call fcn.00464aca
jmp 0x463ee0
mov esi, dword [edi + 0x338]
test esi, esi
jbe 0x463ea3
fld dword [esp + 0x3c]
push dword [esp + 0x1c]
fadd qword [0x543b50]
call fcn.005209b0
fld dword [esp + 0x3c]
fadd dword [esp + 0x34]
push eax
fmul qword [0x543938]
call fcn.005209b0
inc esi
push eax
push esi
mov esi, edi
call fcn.00487515
inc dword [edi + 0x338]
mov eax, dword [edi + 0x338]
cmp eax, 5
jbe 0x463eb8
push 5
jmp 0x463eda
cmp eax, 4
jbe 0x463ec1
push 4
jmp 0x463eda
cmp eax, 3
jbe 0x463eca
push 3
jmp 0x463eda
cmp eax, 2
jbe 0x463ed3
push 2
jmp 0x463eda
cmp eax, 1
jbe 0x463ee0
push 1
push edi
call fcn.004882bd
cmp byte [edi + 0x2e0], 0
je 0x464212
call fcn.004014e2
mov ebx, 0x84
add eax, ebx
test byte [eax + 2], 1
jbe 0x463f36
cmp byte [eax + 0x108], 0
jne 0x463f36
mov eax, dword [edi + 0xd4]
test eax, eax
je 0x463f36
mov eax, dword [eax + 0x3c]
mov byte [eax + 0x77], 0
mov byte [eax + 0x78], 0
mov esi, dword [edi + 0x310]
and dword [edi + 0xd4], 0
call fcn.00464efd
mov eax, edi
call fcn.0048744a
call fcn.004014e2
add eax, ebx
test byte [eax + 1], 2
jbe 0x464212
cmp byte [eax + 0x108], 0
jne 0x464212
mov ebx, dword [edi + 0xd8]
test ebx, ebx
je 0x463f94
mov esi, dword [ebx + 0x3c]
test esi, esi
je 0x463f94
mov ecx, esi
call fcn.00459639
test al, al
je 0x463f94
mov ecx, esi
call fcn.0045a92a
test al, al
jne 0x463f94
mov eax, ebx
call fcn.00463661
mov eax, dword [esp + 0xc]
and dword [eax + 0x324], 0
mov edi, eax
jmp 0x464212
xor eax, eax
cmp ebx, eax
je 0x4640f7
cmp dword [edi + 0xd4], eax
jne 0x4640f7
cmp dword [ebx + 0x3c], eax
jne 0x4640f7
cmp dword [edi + 0x31c], eax
jne 0x4640f7
cmp dword [edi + 0x318], eax
jne 0x4640f7
mov dword [esp + 0x14], eax
lea eax, [edi + 0x44]
mov dword [esp + 0x18], eax
call fcn.0041ae5a
test eax, eax
jbe 0x464212
add edi, 0x328
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
call fcn.00458652
cmp dword [eax], 0
je 0x464016
mov edi, dword [esp + 0x18]
call fcn.00458652
mov ebx, dword [esp + 0xc]
mov ecx, dword [ebx + 0xd8]
cmp ecx, dword [eax]
je 0x46402e
mov eax, dword [esp + 0x18]
inc dword [esp + 0x14]
call fcn.0041ae5a
cmp dword [esp + 0x14], eax
jb 0x463fed
jmp 0x4641e3
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
call fcn.00458652
mov eax, dword [eax]
fld dword [eax + 0x34]
fstp dword [esp + 0x20]
call fcn.00458652
mov eax, dword [eax]
fld dword [eax + 0x38]
mov eax, dword [ebx]
push 0
fstp dword [esp + 0x28]
fldz
push 0
push 0xffffffffffffffff
fstp dword [esp + 0x34]
push ecx
push 1
sub esp, 0xc
mov edi, esp
lea esi, [esp + 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x10
push 0x53c7a8
push str.fx_tomb.cug
mov dword [esp + 0x44], eax
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
pop ecx
push eax
mov eax, dword [esp + 0x2c]
mov ecx, ebx
call dword [eax]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
call fcn.00458652
fldz
mov eax, dword [eax]
fstp dword [eax + 0x58]
call fcn.00458652
mov eax, dword [eax]
push 1
mov dword [ebx + 0x31c], eax
mov byte [ebx + 0x340], 1
call fcn.00464aca
call fcn.004014e2
mov edi, dword [esp + 0x18]
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 0
call fcn.00458652
mov eax, dword [eax]
mov ecx, ebx
mov dword [ecx + 0x324], eax
mov edi, ecx
jmp 0x464212
mov esi, dword [edi + 0xd4]
cmp esi, eax
je 0x4641e9
mov eax, dword [edi + 0x310]
call fcn.00412c16
test eax, eax
je 0x4641e9
mov eax, dword [esi + 0x3c]
mov byte [eax + 0x77], 0
mov byte [eax + 0x78], 0
mov eax, dword [edi + 0xd4]
mov eax, dword [eax + 0x3c]
mov dword [edi + 0x318], eax
mov eax, edi
call fcn.0048744a
fld dword [0x544044]
mov eax, dword [edi + 0x318]
xor ebx, ebx
mov dword [edi + 0xd4], ebx
mov eax, dword [eax]
mov dword [eax + 0x3c], ebx
mov eax, dword [edi + 0x318]
push 1
push ecx
mov ecx, dword [eax]
fstp dword [esp]
call fcn.0045b278
mov eax, dword [edi + 0x310]
call fcn.00464eb9
mov esi, eax
mov eax, dword [edi + 0x310]
call fcn.00464eb9
fldz
mov eax, dword [eax]
push ebx
push ecx
mov ecx, dword [esi]
fstp dword [esp]
mov ecx, dword [ecx + 4]
push ebx
push dword [eax]
mov eax, dword [edi + 0x318]
call fcn.0047a301
mov eax, dword [edi + 0x310]
call fcn.00464eb9
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [edi + 0x318]
mov dword [eax + 0x3c], ecx
mov esi, dword [edi + 0x310]
mov eax, esi
call fcn.00412c16
test eax, eax
je 0x4641c6
add dword [esi + 8], 0xfffffff8
call fcn.00482522
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 0
mov edi, dword [esp + 0xc]
jmp 0x464212
test ebx, ebx
jne 0x464212
test esi, esi
je 0x464212
mov esi, dword [esi + 0x3c]
mov byte [esi + 0x77], bl
mov byte [esi + 0x78], bl
mov esi, dword [edi + 0x310]
and dword [edi + 0xd4], ebx
call fcn.00464efd
mov eax, edi
call fcn.0048744a
cmp dword [edi + 0x318], 0
jne 0x464539
cmp dword [edi + 0x31c], 0
jne 0x464539
mov eax, dword [edi + 0xd4]
xor ebx, ebx
cmp eax, ebx
je 0x46426a
mov esi, dword [eax + 0x3c]
cmp esi, ebx
je 0x46424a
mov ecx, esi
call fcn.0045a92a
test al, al
je 0x46426a
mov byte [esi + 0x77], 0
mov byte [esi + 0x78], 0
mov esi, dword [edi + 0x310]
mov dword [edi + 0xd4], ebx
call fcn.00464efd
mov eax, edi
call fcn.0048744a
mov ecx, dword [edi + 0xd4]
cmp ecx, ebx
je 0x464523
mov eax, dword [edi + 0xd8]
cmp eax, ebx
je 0x464523
cmp ecx, eax
je 0x464523
cmp dword [eax + 0x3c], ebx
jne 0x464523
push eax
mov eax, edi
call fcn.004582d4
mov esi, eax
add edi, 0x328
call fcn.00458652
cmp dword [eax], ebx
je 0x4642d4
call fcn.00458652
mov eax, dword [eax]
cmp word [eax + 0x14], 9
jne 0x4642d4
mov esi, dword [esp + 0xc]
mov eax, esi
call fcn.0048744a
mov esi, dword [esi + 0x310]
jmp 0x464518
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0x310]
mov eax, esi
call fcn.00412c16
test eax, eax
jbe 0x46430c
mov eax, esi
call fcn.00412c16
test eax, eax
ja 0x4642f9
call fcn.004e0f8f
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, dword [ebx + 0xd8]
je 0x464537
lea edi, [ebx + 0x44]
mov eax, edi
xor esi, esi
call fcn.0041ae5a
test eax, eax
jbe 0x464333
call fcn.00458652
mov eax, dword [eax]
mov byte [eax + 0x68], 0
mov eax, edi
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x46431c
push dword [ebx + 0xd8]
mov eax, dword [ebx + 0xd4]
push dword [ebx + 0x314]
call fcn.00466565
test al, al
je 0x46450b
mov eax, dword [ebx + 0xd4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x310]
call fcn.00412c16
mov esi, eax
mov eax, dword [ebx + 0x314]
dec esi
mov dword [esp + 0x14], esi
call fcn.00412c16
dec eax
test esi, esi
mov dword [esp + 0x10], eax
jl 0x464435
cmp dword [esp + 0x10], 0
jl 0x464405
mov esi, dword [esp + 0x10]
mov edi, dword [ebx + 0x314]
call fcn.004196a7
mov esi, dword [esp + 0x14]
mov edi, dword [ebx + 0x310]
mov dword [esp + 0x18], eax
call fcn.004196a7
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx]
jne 0x464405
mov edi, dword [ebx + 0x310]
call fcn.004196a7
mov esi, dword [esp + 0x10]
mov edi, dword [ebx + 0x314]
add eax, 4
mov dword [esp + 0x1c], eax
call fcn.004196a7
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov dword [eax + 4], ecx
mov edi, dword [ebx + 0x314]
call fcn.004196a7
mov eax, dword [eax]
dec dword [esp + 0x14]
mov eax, dword [eax]
dec dword [esp + 0x10]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
jge 0x464386
cmp dword [esp + 0x14], 0
jl 0x464435
mov esi, dword [esp + 0x14]
mov edi, dword [ebx + 0x310]
call fcn.004196a7
fldz
mov ecx, dword [eax + 4]
fcomp dword [ecx + 0x14]
fnstsw ax
test ah, 0x41
jne 0x46442f
fld1
fstp dword [ecx + 0x14]
dec dword [esp + 0x14]
jns 0x46440c
cmp dword [esp + 0x10], 0
jl 0x4644f1
call fcn.0045dcb9
test eax, eax
mov dword [esp + 0x14], eax
je 0x4644a4
mov esi, dword [esp + 0x10]
mov edi, dword [ebx + 0x314]
call fcn.004196a7
mov edi, dword [ebx + 0x314]
mov dword [esp + 0x18], eax
call fcn.004196a7
mov ecx, dword [ebx + 0xd4]
mov ecx, dword [ecx + 0x3c]
movzx ecx, word [ecx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 4]
push 0xffffffffffffffff
push dword [ecx*4 + 0x57251c]
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov edi, dword [ecx]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
add eax, 0x10
call fcn.0045c2de
mov dword [esp + 0x1c], eax
jmp 0x4644a9
and dword [esp + 0x1c], 0
mov esi, dword [esp + 0x10]
mov edi, dword [ebx + 0x314]
call fcn.004196a7
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
mov edi, dword [ebx + 0x314]
call fcn.004196a7
push dword [eax + 4]
mov eax, ebx
call fcn.004873e4
mov edi, dword [ebx + 0x314]
call fcn.004196a7
dec dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jns 0x464440
mov esi, dword [ebx + 0x310]
mov eax, dword [ebx + 0x314]
mov dword [ebx + 0x310], eax
mov dword [ebx + 0x314], esi
jmp 0x464518
mov eax, ebx
call fcn.0048744a
mov esi, dword [ebx + 0x310]
call fcn.00464efd
mov edi, dword [esp + 0xc]
jmp 0x464539
mov eax, edi
call fcn.0048744a
mov esi, dword [edi + 0x310]
call fcn.00464efd
jmp 0x464539
mov edi, ebx
lea eax, [edi + 0x54]
call fcn.0041ae5a
cmp dword [edi + 0x90], eax
jne 0x464607
cmp dword [edi + 0x164], 0x64
jne 0x46477d
mov eax, dword [edi + 0xd4]
test eax, eax
je 0x464588
mov eax, dword [eax + 0x3c]
mov byte [eax + 0x77], 0
mov byte [eax + 0x78], 0
mov esi, dword [edi + 0x310]
and dword [edi + 0xd4], 0
call fcn.00464efd
mov eax, edi
call fcn.0048744a
lea ebx, [edi + 0x328]
xor esi, esi
mov eax, ebx
mov dword [edi + 0x31c], esi
call fcn.0041ae5a
test eax, eax
jbe 0x4645da
mov edi, ebx
call fcn.00458652
cmp dword [eax], 0
je 0x4645ca
call fcn.00458652
fldz
mov eax, dword [eax]
fstp dword [eax + 0x58]
call fcn.00458652
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x31c], eax
mov eax, ebx
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x4645a1
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x31c], 0
je 0x4645fb
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 0
mov ecx, edi
call fcn.0047e949
jmp 0x46476b
cmp dword [edi + 0x164], 0x64
jne 0x46477d
cmp byte [edi + 0x2e0], 0
je 0x46476b
xor esi, esi
cmp dword [edi + 0xd4], esi
jne 0x4646bd
cmp dword [edi + 0x318], esi
jne 0x4646bd
lea eax, [edi + 0x44]
mov dword [edi + 0x320], esi
mov dword [esp + 0x18], eax
call fcn.0041ae5a
test eax, eax
jbe 0x4646bd
add edi, 0x328
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
call fcn.00458652
cmp dword [eax], 0
je 0x464680
mov edi, dword [esp + 0x18]
call fcn.00458652
mov ebx, dword [esp + 0xc]
mov ecx, dword [ebx + 0xd8]
cmp ecx, dword [eax]
je 0x464694
mov eax, dword [esp + 0x18]
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x46465b
mov edi, dword [esp + 0xc]
jmp 0x4646bd
mov edi, dword [esp + 0x10]
call fcn.00458652
fld dword [0x543a34]
push ecx
mov ecx, dword [eax]
fstp dword [esp]
call fcn.0045a949
call fcn.00458652
mov eax, dword [eax]
mov dword [ebx + 0x320], eax
mov edi, ebx
fld dword [0x5443d8]
lea eax, [esp + 0x1c]
push eax
fst dword [esp + 0x34]
lea eax, [esp + 0x34]
fstp dword [esp + 0x38]
fld dword [0x543fb4]
push eax
push dword [edi + 0x338]
fst dword [esp + 0x44]
fstp dword [esp + 0x48]
push edi
call fcn.0047fa53
test al, al
je 0x46476b
mov esi, dword [edi + 0x338]
test esi, esi
jbe 0x46472e
fld dword [esp + 0x3c]
push dword [esp + 0x1c]
fadd qword [0x543b50]
call fcn.005209b0
fld dword [esp + 0x3c]
fadd dword [esp + 0x34]
push eax
fmul qword [0x543938]
call fcn.005209b0
inc esi
push eax
push esi
mov esi, edi
call fcn.00487515
inc dword [edi + 0x338]
mov eax, dword [edi + 0x338]
cmp eax, 5
jbe 0x464743
push 5
jmp 0x464765
cmp eax, 4
jbe 0x46474c
push 4
jmp 0x464765
cmp eax, 3
jbe 0x464755
push 3
jmp 0x464765
cmp eax, 2
jbe 0x46475e
push 2
jmp 0x464765
cmp eax, 1
jbe 0x46476b
push 1
push edi
call fcn.004882bd
cmp dword [edi + 0x164], 0x64
jne 0x46477d
cmp byte [edi + 0x2e0], 0
jne 0x464784
and dword [edi + 0x320], 0
push 0x64
mov ebx, edi
call fcn.0047f5e9
test al, al
je 0x46483d
cmp dword [edi + 0x164], 4
jne 0x46483d
mov esi, dword [edi + 0x31c]
test esi, esi
je 0x464836
mov ecx, esi
call fcn.00459639
test al, al
je 0x464832
fld1
fcomp dword [esi + 0x58]
fnstsw ax
test ah, 0x41
jp 0x464832
and dword [edi + 0x31c], 0
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 0
mov byte [eax + 0x109], 1
lea ebx, [edi + 0x328]
mov eax, ebx
xor esi, esi
call fcn.0041ae5a
test eax, eax
jbe 0x464836
mov edi, ebx
call fcn.00458652
cmp dword [eax], 0
je 0x464820
call fcn.00458652
fld1
mov eax, dword [eax]
fcomp dword [eax + 0x58]
fnstsw ax
test ah, 0x41
jp 0x464820
call fcn.00458652
and dword [eax], 0
mov eax, ebx
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x4647f9
mov edi, dword [esp + 0xc]
jmp 0x464836
test esi, esi
jne 0x46483d
mov ebx, edi
call fcn.0047ec35
pop edi
xor eax, eax
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret 4