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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffe40
mov ebx, eax
xor esi, esi
test esi, esi
lea eax, [esp + 0x148]
mov edx, 0x20
call fcn.00470620
lea eax, [esp + 0x128]
mov edx, 0x20
call fcn.00470620
lea eax, [esp + 0x108]
mov edx, 0x20
call fcn.00470620
lea eax, [esp + 0xe8]
mov edx, 0x20
call fcn.00470620
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
fld qword [esp + 0x10]
fcomp dword [0x4631f0]
fnstsw ax
sahf
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
fld qword [esp + 8]
fcomp dword [0x4631f0]
fnstsw ax
sahf
lea eax, [esp + 0xd8]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0xc8]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0xb8]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0xa8]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0x98]
mov edx, 0x10
call fcn.00470620
xor eax, eax
mov dword [esp], eax
cmp dword [esp], 0
lea eax, [esp + 0x88]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0x78]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0x68]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0x58]
mov edx, 0x10
call fcn.00470620
lea eax, [esp + 0x48]
mov edx, 0x10
call fcn.00470620
mov eax, dword [ebx + 0x508]
mov edx, dword [ebx + 0x50c]
sub eax, 1
sbb edx, 0
mov ecx, dword [ebx + 0x28]
mov dword [ecx + 0x508], eax
mov dword [ecx + 0x50c], edx
cmp dword [ebx + 0x50c], 0
jne 0x4624d6
cmp dword [ebx + 0x508], 0
jae 0x462cd1
jmp 0x4624dc
jge 0x462cd1
mov eax, dword [ebx + 0x28]
mov dword [eax + 0x508], 0x64
mov dword [eax + 0x50c], 0
mov esi, dword [ebx + 0x4dc]
mov eax, dword [esi + 0x7c]
call dword [esi + 0x78]
mov esi, dword [ebx + 0x4e0]
mov eax, dword [esi + 0x7c]
call dword [esi + 0x78]
call fcn.0041cb20
push 0
push 0
lea eax, [esp + 0x170]
call fcn.0041cb64
lea esi, [esp + 0x168]
lea edi, [ebx + 0x4e8]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [esp + 0x18], eax
call fcn.0041cb2c
dec eax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
sub eax, esi
jl 0x4628de
inc eax
mov dword [esp + 0x40], eax
call fcn.00404a24
inc dword [eax + 0x34]
call fcn.00404a24
cmp dword [eax + 0x34], 0xffff
jle 0x46257a
call fcn.004705bc
lea eax, [esp + 0xe8]
mov edx, 0x20
call fcn.00470620
mov eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x150]
call fcn.0041cb64
lea edx, [esp + 0x188]
lea eax, [esp + 0x148]
call fcn.004631fc
push esi
lea esi, [esp + 0x18c]
lea edi, [esp + 0xec]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x130]
call fcn.0041cb64
push dword [esp + 0x13c]
push dword [esp + 0x13c]
call fcn.00423360
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], edx
fild qword [esp + 0x198]
fstp qword [esp + 0xf8]
wait
mov eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x110]
call fcn.0041cb64
push dword [esp + 0x124]
push dword [esp + 0x124]
call fcn.00423360
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], edx
fild qword [esp + 0x198]
fstp qword [esp + 0x100]
wait
lea ecx, [esp + 0xe8]
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x4dc]
mov edx, 0x7fffffff
call fcn.00471488
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
mov ecx, eax
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x4e0]
mov edx, 0x7fffffff
call fcn.00471488
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2b8
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2b8
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jbe 0x462723
lea eax, [edi + 0x4e8]
call fcn.0041c340
fstp qword [esp + 0x10]
wait
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2b8
fstp qword [edi + 0x4e8]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2b8
fsubr qword [esp + 0x10]
fstp qword [edi + 0x4f8]
wait
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2fc
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2fc
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jbe 0x4627b7
lea eax, [edi + 0x4e8]
call fcn.0041c380
fstp qword [esp + 8]
wait
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2fc
fstp qword [edi + 0x4f0]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2fc
fsubr qword [esp + 8]
fstp qword [edi + 0x500]
wait
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c340
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c340
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jae 0x462845
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c340
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c340
fsubr qword [esp + 0x198]
fadd qword [edi + 0x4f8]
fstp qword [edi + 0x4f8]
wait
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c380
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c380
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jae 0x4628d3
mov ebp, dword [ebx + 0x4dc]
mov eax, dword [ebp + 0x3c]
call dword [ebp + 0x38]
mov edx, eax
dec edx
mov ebp, dword [edi + 0x4dc]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c380
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c380
fsubr qword [esp + 0x198]
fadd qword [edi + 0x500]
fstp qword [edi + 0x500]
wait
inc esi
dec dword [esp + 0x40]
jne 0x462559
xor eax, eax
mov dword [esp + 0x20], eax
mov esi, dword [ebx + 0x4dc]
mov eax, dword [esi + 0x3c]
call dword [esi + 0x38]
dec eax
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub eax, esi
jl 0x462c51
inc eax
mov dword [esp + 0x40], eax
call fcn.00404a24
inc dword [eax + 0x34]
call fcn.00404a24
cmp dword [eax + 0x34], 0xffff
jle 0x46292b
call fcn.004705bc
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6dc
test al, al
je 0x462a02
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2b8
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2b8
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jae 0x462a02
mov edi, ebx
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
add eax, 0x10
push eax
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2b8
fstp qword [esp + 0x19c]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2b8
fsubr qword [esp + 0x19c]
fstp xword [esp + 0x1a4]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
fld qword [eax + 0x10]
fld xword [esp + 0x1a4]
faddp st(1)
pop eax
fstp qword [eax]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
push eax
lea eax, [edi + 0x4e8]
call fcn.0041c2b8
pop eax
fstp qword [eax]
wait
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6f0
test al, al
je 0x462ab7
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c340
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c340
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jbe 0x462ab7
mov edi, ebx
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
add eax, 0x10
push eax
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c340
fstp qword [esp + 0x19c]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c340
fsub qword [esp + 0x19c]
fstp xword [esp + 0x1a4]
wait
mov edi, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
fld qword [eax + 0x10]
fld xword [esp + 0x1a4]
faddp st(1)
pop eax
fstp qword [eax]
wait
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b704
test al, al
je 0x462b91
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2fc
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2fc
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jae 0x462b91
mov edi, ebx
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
add eax, 0x18
push eax
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2fc
fstp qword [esp + 0x19c]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c2fc
fsubr qword [esp + 0x19c]
fstp xword [esp + 0x1a4]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
fld qword [eax + 0x18]
fld xword [esp + 0x1a4]
faddp st(1)
pop eax
fstp qword [eax]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
add eax, 8
push eax
lea eax, [edi + 0x4e8]
call fcn.0041c2fc
pop eax
fstp qword [eax]
wait
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b718
test al, al
je 0x462c46
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c380
fstp qword [esp + 0x198]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c380
fsub qword [esp + 0x198]
fcomp dword [0x4631f0]
fnstsw ax
sahf
jbe 0x462c46
mov edi, ebx
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
add eax, 0x18
push eax
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c380
fstp qword [esp + 0x19c]
wait
lea eax, [edi + 0x4e8]
call fcn.0041c380
fsub qword [esp + 0x19c]
fstp xword [esp + 0x1a4]
wait
mov edi, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
fld qword [eax + 0x18]
fld xword [esp + 0x1a4]
faddp st(1)
pop eax
fstp qword [eax]
wait
inc esi
dec dword [esp + 0x40]
jne 0x46290a
xor eax, eax
mov dword [esp + 0x28], eax
mov esi, dword [ebx + 0x4dc]
mov eax, dword [esi + 0x3c]
call dword [esi + 0x38]
dec eax
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
sub eax, esi
jl 0x462cd1
inc eax
mov dword [esp + 0x40], eax
call fcn.00404a24
inc dword [eax + 0x34]
call fcn.00404a24
cmp dword [eax + 0x34], 0xffff
jle 0x462c9a
call fcn.004705bc
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b68c
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6a0
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6b4
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6c8
inc esi
dec dword [esp + 0x40]
jne 0x462c79
mov esi, ebx
mov edi, dword [esi + 0x4dc]
mov eax, dword [edi + 0x3c]
call dword [edi + 0x38]
mov edx, 1
sub edx, eax
jns 0x4631e4
lea eax, [esp + 0xd8]
call fcn.0043e8a8
lea edx, [esp + 0xc8]
lea eax, [esp + 0xd8]
call fcn.004631fc
mov edi, dword [ebx + 0x510]
mov eax, dword [edi + 0x3c]
call dword [edi + 0x38]
mov edx, eax
dec edx
mov edi, dword [esi + 0x510]
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
mov edx, eax
lea eax, [esp + 0xc8]
call fcn.00463d68
test al, al
jne 0x4631e4
lea eax, [esp + 0xb8]
call fcn.0043e8a8
lea edx, [esp + 0xa8]
lea eax, [esp + 0xb8]
call fcn.004631fc
lea ecx, [esp + 0xa8]
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x510]
mov edx, 0x7fffffff
call fcn.00471488
mov edi, dword [esi + 0x510]
mov eax, dword [edi + 0x3c]
call dword [edi + 0x38]
mov edx, 4
sub edx, eax
jns 0x4631e4
mov edi, dword [esi + 0x510]
mov ecx, 1
xor edx, edx
mov eax, dword [edi + 0x64]
call dword [edi + 0x60]
mov edi, dword [ebx + 0x510]
mov eax, dword [edi + 0x3c]
call dword [edi + 0x38]
mov edx, eax
dec edx
mov edi, dword [esi + 0x510]
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
push esi
mov esi, eax
lea edi, [esp + 0x9c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
xor eax, eax
mov dword [esp + 0x30], eax
mov esi, dword [esi + 0x4dc]
mov eax, dword [esi + 0x3c]
call dword [esi + 0x38]
dec eax
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub eax, esi
jl 0x4631e4
inc eax
mov dword [esp + 0x40], eax
call fcn.00404a24
inc dword [eax + 0x34]
call fcn.00404a24
cmp dword [eax + 0x34], 0xffff
jle 0x462e18
call fcn.004705bc
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
mov edx, eax
lea eax, [esp + 0x98]
call fcn.00463cc8
test al, al
je 0x4631d9
mov edi, dword [edi + 0x510]
mov eax, dword [edi + 0x3c]
call dword [edi + 0x38]
sub eax, 2
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
sub edi, eax
jg 0x462ebb
dec edi
mov dword [esp], eax
call fcn.00404a24
inc dword [eax + 0x34]
call fcn.00404a24
cmp dword [eax + 0x34], 0xffff
jle 0x462e88
call fcn.004705bc
mov ebp, dword [ebx + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
push eax
mov ebp, dword [ebx + 0x510]
mov edx, dword [esp + 4]
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
pop edx
call fcn.00463cc8
test al, al
je 0x4631d9
dec dword [esp]
inc edi
jne 0x462e67
mov edi, ebx
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2b8
fsubr qword [esp + 0x98]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0047072c
fstp qword [esp + 0x198]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
fld qword [eax + 0x10]
fmul qword [esp + 0x198]
fstp xword [esp + 0x1a0]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2b8
fld xword [esp + 0x1a0]
faddp st(1)
add esp, 0xfffffff8
fstp qword [esp]
wait
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
call fcn.0041c2fc
fsubr qword [esp + 0xa8]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov ebp, dword [edi + 0x4dc]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.0047072c
fstp qword [esp + 0x1b4]
wait
mov ebp, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [ebp + 0x44]
call dword [ebp + 0x40]
fld qword [eax + 0x18]
fmul qword [esp + 0x1b4]
fstp xword [esp + 0x1bc]
wait
mov edi, dword [edi + 0x4e0]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c2fc
fld xword [esp + 0x1bc]
faddp st(1)
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [esp + 0x98]
call fcn.0041c3c0
mov edi, dword [ebx + 0x4dc]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c2b8
add esp, 0xfffffff8
fstp qword [esp]
wait
push dword [esp + 0xa4]
push dword [esp + 0xa4]
call fcn.004119c4
test al, al
je 0x46304d
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6dc
test al, al
jne 0x46304d
push 0xbff00000
push 0
push 0
push 0
lea edx, [esp + 0x88]
lea eax, [esp + 0x98]
call fcn.0041c604
mov eax, esi
cdq
push edx
push eax
lea edx, [esp + 0x80]
mov eax, ebx
call fcn.0046b664
test al, al
jne 0x4631e4
mov edi, dword [ebx + 0x4dc]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c2fc
add esp, 0xfffffff8
fstp qword [esp]
wait
push dword [esp + 0xac]
push dword [esp + 0xac]
call fcn.004119c4
test al, al
je 0x4630c1
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b704
test al, al
jne 0x4630c1
push 0
push 0
push 0xbff00000
push 0
lea edx, [esp + 0x78]
lea eax, [esp + 0x98]
call fcn.0041c604
mov eax, esi
cdq
push edx
push eax
lea edx, [esp + 0x70]
mov eax, ebx
call fcn.0046b664
test al, al
jne 0x4631e4
mov edi, dword [ebx + 0x4dc]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c340
fsub dword [0x4631f4]
fsub qword [esp + 0x98]
fcomp dword [0x4631f0]
fnstsw ax
sahf
ja 0x46314f
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b6f0
test al, al
jne 0x46314f
mov edi, dword [ebx + 0x4e0]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c340
fsub qword [esp + 0x88]
fadd dword [0x4631f8]
add esp, 0xfffffff8
fstp qword [esp]
wait
push 0
push 0
lea edx, [esp + 0x68]
lea eax, [esp + 0x98]
call fcn.0041c604
mov eax, esi
cdq
push edx
push eax
lea edx, [esp + 0x60]
mov eax, ebx
call fcn.0046b664
test al, al
jne 0x4631e4
mov edi, dword [ebx + 0x4dc]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c380
fsub dword [0x4631f4]
fsub qword [esp + 0xa0]
fcomp dword [0x4631f0]
fnstsw ax
sahf
ja 0x4631d9
mov eax, esi
cdq
push edx
push eax
mov eax, ebx
call fcn.0046b718
test al, al
jne 0x4631d9
push 0
push 0
mov edi, dword [ebx + 0x4e0]
mov edx, esi
mov eax, dword [edi + 0x44]
call dword [edi + 0x40]
call fcn.0041c380
fsub qword [esp + 0x98]
fadd dword [0x4631f8]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [esp + 0x58]
lea eax, [esp + 0x98]
call fcn.0041c604
mov eax, esi
cdq
push edx
push eax
lea edx, [esp + 0x50]
mov eax, ebx
call fcn.0046b664
test al, al
jne 0x4631e4
inc esi
dec dword [esp + 0x40]
jne 0x462df7
add esp, 0x1c0
pop ebp
pop edi
pop esi
pop ebx
ret