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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x170
push ebx
mov ebx, ecx
push ebp
push esi
push edi
lea esi, [ebx + 0x14]
sub esp, 0xc
mov eax, esi
mov ecx, esp
mov dword [esp + 0xb8], ebx
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [0x4fdf68]
call fcn.00433a40
mov ebp, dword [eax]
lea edi, [ebx + 0x20]
sub esp, 0xc
mov dword [esp + 0x20], ebp
mov edx, dword [eax + 4]
mov eax, edi
mov dword [esp + 0x24], edx
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [0x4fdf68]
call fcn.00433a40
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fcomp dword [0x49144c]
fnstsw ax
test ah, 1
jne 0x40d0f5
fld dword [esp + 0x2c]
fcomp dword [0x49144c]
fnstsw ax
test ah, 1
jne 0x40d0f5
mov al, byte [0x49d513]
test al, al
je 0x40c4bb
mov edx, edi
mov ecx, esi
call fcn.0042e040
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, esi
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edx]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [0x4fdf68]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 4]
fld dword [esp + 0x1c]
mov edx, dword [edx + 8]
mov dword [esp + 0x20], ecx
fsub dword [esp + 0x44]
fld dword [esp + 0x20]
fsub dword [esp + 0x48]
mov ecx, eax
mov dword [esp + 0x24], edx
fld dword [esp + 0x24]
mov edx, dword [ecx]
fsub dword [esp + 0x4c]
mov dword [esp + 0x44], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x48], edx
mov edx, esi
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 4]
fld dword [esp + 0x1c]
fsub dword [esp + 0x44]
mov edx, dword [edx + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax]
mov dword [esp + 0x24], edx
fld dword [esp + 0x20]
fsub dword [esp + 0x48]
mov edx, dword [eax + 4]
mov dword [esp + 0x60], ecx
fld dword [esp + 0x24]
fsub dword [esp + 0x4c]
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
mov edx, dword [ecx]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x1c]
fsub dword [esp + 0x60]
mov eax, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [ecx + 8]
fstp dword [esp + 0x44]
fld dword [esp + 0x20]
fsub dword [esp + 0x64]
mov dword [esp + 0x24], ecx
fstp dword [esp + 0x48]
fld dword [esp + 0x24]
fsub dword [esp + 0x68]
fstp dword [esp + 0x4c]
fld st(1)
fmul st(4)
fld st(1)
fmul st(6)
fsubp st(1)
fstp dword [esp + 0x1c]
fmul st(5)
fld st(2)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x20]
fxch st(1)
fmul st(3)
fxch st(1)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x48]
fmul st(1)
fld dword [esp + 0x4c]
fmul st(3)
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
sub esp, 0xc
fsubp st(1)
mov edx, esp
fstp dword [esp + 0x88]
fld dword [esp + 0x58]
fmul st(3)
fld dword [esp + 0x50]
fmul st(2)
mov dword [edx], eax
mov eax, dword [esp + 0x30]
fsubp st(1)
mov dword [edx + 4], ecx
lea ecx, [esp + 0xc0]
push ecx
fstp dword [esp + 0x90]
mov dword [edx + 8], eax
fstp st(0)
fld dword [esp + 0x54]
fmul st(1)
fld dword [esp + 0x58]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x94]
fstp st(0)
fstp st(0)
call fcn.0044f0c0
mov edx, dword [eax]
sub esp, 0xc
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 4]
fld dword [esp + 0x28]
mov edx, dword [eax + 8]
mov eax, dword [esi]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x2c], ecx
fadd dword [esp + 0x6c]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov eax, esp
fstp dword [esp + 0x94]
fld dword [esp + 0x2c]
fadd dword [esp + 0x70]
mov ecx, dword [esp + 0x94]
mov dword [eax], ecx
fstp dword [esp + 0x98]
fld dword [esp + 0x30]
fadd dword [esp + 0x74]
mov edx, dword [esp + 0x98]
mov dword [eax + 4], edx
lea edx, [esp + 0x50]
push edx
fstp dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
mov ecx, dword [0x4fdf68]
call fcn.00433a40
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
fld dword [esp + 0x50]
fsub dword [esp + 0x14]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], edx
fstp dword [esp + 0x74]
fld dword [esp + 0x54]
fsub dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
push eax
push ecx
push eax
push ecx
call fcn.0044eb00
push ecx
fstp dword [esp]
call fcn.0044ead0
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
sub esp, 0xc
mov eax, esp
fstp dword [esp + 0x34]
mov dword [eax], ecx
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], edx
lea edx, [esp + 0xc0]
push edx
mov dword [eax + 8], ecx
call fcn.0044f0c0
mov ecx, dword [eax]
sub esp, 0xc
mov dword [esp + 0x28], ecx
mov ecx, dword [edi]
fld dword [esp + 0x28]
mov edx, dword [eax + 4]
mov dword [esp + 0x6c], ecx
fadd dword [esp + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x70], edx
fstp dword [esp + 0x94]
fld dword [esp + 0x2c]
fadd dword [esp + 0x70]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x74], eax
mov ecx, esp
fstp dword [esp + 0x98]
fld dword [esp + 0x30]
fadd dword [esp + 0x74]
mov eax, dword [esp + 0x98]
mov dword [ecx], edx
mov dword [ecx + 4], eax
lea eax, [esp + 0x50]
fstp dword [esp + 0x9c]
mov edx, dword [esp + 0x9c]
push eax
mov dword [ecx + 8], edx
mov ecx, dword [0x4fdf68]
call fcn.00433a40
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
fld dword [esp + 0x50]
fsub dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], edx
fstp dword [esp + 0x74]
fld dword [esp + 0x54]
fsub dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
push eax
push ecx
push eax
push ecx
call fcn.0044eb00
push ecx
fstp dword [esp]
call fcn.0044ead0
fstp dword [esp + 0x34]
fld dword [esp + 0x14]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 1
je 0x40c81f
fld dword [esp + 0x14]
fsub dword [0x49149c]
call fcn.0044eaa0
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
fadd dword [esp + 0x2c]
fsub dword [esp + 0x14]
jmp 0x40c844
fld dword [esp + 0x2c]
fsub dword [0x49149c]
call fcn.0044eaa0
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
fadd dword [esp + 0x14]
fsub dword [esp + 0x2c]
fadd dword [0x4914ec]
call fcn.0044eaa0
fld dword [esp + 0x18]
fcomp dword [esp + 0x30]
mov dword [esp + 0xa4], eax
fnstsw ax
test ah, 1
je 0x40c88c
fld dword [esp + 0x18]
fsub dword [0x49149c]
call fcn.0044eaa0
mov dword [esp + 0xa0], eax
fild dword [esp + 0xa0]
fadd dword [esp + 0x30]
fsub dword [esp + 0x18]
jmp 0x40c8b1
fld dword [esp + 0x30]
fsub dword [0x49149c]
call fcn.0044eaa0
mov dword [esp + 0xa0], eax
fild dword [esp + 0xa0]
fadd dword [esp + 0x18]
fsub dword [esp + 0x30]
fadd dword [0x4914ec]
call fcn.0044eaa0
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
cmp eax, ecx
jne 0x40c8ff
mov ecx, dword [esp + 0xa0]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jne 0x40c8ff
mov edx, dword [esp + 0xa4]
mov eax, dword [ebx + 0x38]
cmp edx, eax
jne 0x40c8ff
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebx + 0x3c]
cmp eax, ecx
je 0x40d0e2
fld dword [esp + 0x2c]
fsub dword [esp + 0x14]
fstp dword [esp + 0x50]
fld dword [esp + 0x30]
fsub dword [esp + 0x18]
mov edi, dword [esp + 0x50]
fstp dword [esp + 0x54]
mov esi, dword [esp + 0x54]
push esi
push edi
call fcn.0044f160
push esi
push edi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
call fcn.0044eb40
fstp dword [esp + 0xb0]
fld dword [esp + 0x98]
fmul dword [esp + 0x28]
fld dword [esp + 0x94]
fmul dword [esp + 0x28]
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x38], ebp
mov ecx, dword [eax + 0x14]
mov edx, dword [eax]
fstp dword [esp + 0x28]
fld dword [esp + 0x98]
fmul dword [esp + 0x34]
mov eax, dword [esp + 0x18]
add ecx, edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x3c], eax
fmul dword [0x4914a4]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x58], eax
fstp dword [esp + 0x40]
fld dword [esp + 0x94]
fmul dword [esp + 0x34]
mov dword [esp + 0x5c], ecx
fmul dword [0x4914a4]
fstp dword [esp + 0x34]
fld st(0)
fadd dword [esp + 0x14]
fstp dword [esp + 0x6c]
fld dword [esp + 0x70]
fsub dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x100], ecx
fstp dword [esp + 0x70]
fld dword [esp + 0x14]
fsub st(1)
mov edx, dword [esp + 0x70]
mov dword [esp + 0x104], edx
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fstp st(0)
fld dword [esp + 0x3c]
fadd dword [esp + 0x28]
mov dword [esp + 0x108], eax
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fadd dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10c], ecx
fstp dword [esp + 0x7c]
fld dword [esp + 0x80]
fsub dword [esp + 0x34]
fstp dword [esp + 0x80]
fld dword [esp + 0x2c]
fsub dword [esp + 0x40]
fstp dword [esp + 0x58]
fld dword [esp + 0x5c]
fadd dword [esp + 0x34]
mov edx, dword [esp + 0x58]
fstp dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x7c]
fld dword [esp + 0x70]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x118], ecx
mov dword [esp + 0x11c], edx
xor esi, esi
mov dword [esp + 0xfc], 4
mov dword [esp + 0x28], eax
xor edi, edi
mov ecx, 1
lea edx, [esp + 0x10c]
fld dword [edx]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 1
je 0x40cac1
mov eax, dword [edx]
mov edi, ecx
mov dword [esp + 0x28], eax
fcom dword [edx]
fnstsw ax
test ah, 1
je 0x40cad0
fstp st(0)
fld dword [edx]
mov esi, ecx
inc ecx
add edx, 8
cmp ecx, 3
jle 0x40caac
lea edx, [esp + 0xf4]
mov ecx, 0x4a09e8
fstp st(0)
mov dword [esp + 0xf8], esi
mov dword [esp + 0xf4], edi
call fcn.00447eb0
mov eax, dword [0x4a29ec]
cmp eax, 1
jle 0x40d0fc
sub eax, dword [0x4a29e8]
test eax, eax
jle 0x40d0f5
push eax
mov ecx, 0x4b0ce8
call fcn.0040bd90
mov ebp, dword [0x4a29e8]
mov esi, dword [0x4a29ec]
cmp ebp, esi
mov dword [esp + 0x14], ebp
jg 0x40d093
lea edi, [ebp*4 + 0x4a19e8]
mov dword [esp + 0x28], edi
cmp dword [edi - 0x1000], 0xbf800000
je 0x40d079
cmp dword [edi], 0xbf800000
je 0x40d079
fld dword [edi - 0x1000]
call fcn.0044eaa0
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fcom dword [edi]
fnstsw ax
test ah, 0x41
je 0x40d077
fild dword [esp + 0x14]
fstp dword [esp + 0x80]
fld dword [esp + 0x30]
fsub dword [esp + 0x80]
fstp dword [esp + 0x8c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x2c]
fsub dword [esp + 0x7c]
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x8c]
push ecx
push esi
push edx
fstp dword [esp + 0x94]
mov eax, dword [esp + 0x94]
push eax
call fcn.0044eb00
fst dword [esp + 0x38]
fcomp dword [0x49144c]
fnstsw ax
test ah, 1
jne 0x40d058
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
fcomp dword [esp + 0xb0]
fnstsw ax
test ah, 0x41
je 0x40d058
fld dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x50], esi
fmul dword [esp + 0x38]
mov dword [esp + 0x54], ecx
fld dword [esp + 0x54]
fmul dword [esp + 0x38]
fstp dword [esp + 0x54]
fsubr dword [esp + 0x2c]
fld dword [esp + 0x30]
fsub dword [esp + 0x54]
fstp dword [esp + 0x48]
fsub dword [esp + 0x7c]
fstp dword [esp + 0x60]
fld dword [esp + 0x48]
fsub dword [esp + 0x80]
mov eax, dword [esp + 0x60]
fstp dword [esp + 0x64]
mov edx, dword [esp + 0x64]
push edx
push eax
call fcn.0044eb40
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0044ead0
mov edx, dword [esp + 0xb0]
fstp dword [esp + 0x14]
push edx
call fcn.0044ead0
fstp dword [esp + 0x40]
fld dword [esp + 0x14]
fdiv dword [esp + 0x40]
fstp dword [esp + 0x6c]
fld dword [esp + 0x38]
fdiv dword [esp + 0x40]
fst dword [esp + 0x14]
fmul dword [0x4914e8]
fadd dword [0x4914e4]
fstp dword [esp + 0x38]
fld dword [esp + 0x6c]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 1
je 0x40d058
fld dword [esp + 0x38]
fchs
fcomp dword [esp + 0x6c]
fnstsw ax
test ah, 1
je 0x40d058
fld dword [esp + 0x6c]
fsub dword [esp + 0x38]
fabs
fmul dword [esp + 0x40]
fcom dword [0x491434]
fnstsw ax
test ah, 0x41
jne 0x40ccfa
fstp st(0)
mov dword [esp + 0x34], 0
jmp 0x40cd08
fld dword [0x491434]
fsub st(1)
fstp dword [esp + 0x34]
fstp st(0)
fld dword [esp + 0x6c]
fmul dword [0x491440]
sub esp, 8
fadd dword [0x4914e0]
fstp dword [esp + 0x7c]
fld dword [0x491434]
fsub dword [esp + 0x1c]
fmul dword [0x491440]
fstp dword [esp + 0x80]
fld dword [esp + 0x7c]
fstp qword [esp]
call fcn.0047e185
call fcn.0044eaa0
fld dword [esp + 0x80]
mov ebx, eax
fstp qword [esp]
mov dword [esp + 0x48], ebx
call fcn.0047e185
add esp, 8
call fcn.0044eaa0
mov ecx, dword [esp + 0x58]
mov esi, eax
mov eax, ebp
and ecx, 3
and eax, 3
mov dword [esp + 0x14], esi
lea edx, [ecx + eax*4]
fld dword [edx*4 + 0x4b1020]
call fcn.0044eaa0
mov ecx, dword [esp + 0xcc]
mov edi, eax
shl esi, 5
add esi, ebx
mov eax, esi
fild dword [esp + 0x14]
lea edx, [ecx + eax*2]
xor ecx, ecx
mov cl, byte [eax + edx]
add eax, edx
inc eax
xor edx, edx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0x20], edx
inc eax
xor edx, edx
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0xd8], edx
inc eax
xor edx, edx
mov dword [esp + 0xd4], ecx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 0x5b]
add eax, 0x5b
mov dword [esp + 0xd0], edx
inc eax
xor edx, edx
mov dword [esp + 0xc8], ecx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0xc4], edx
fsubr dword [esp + 0x78]
inc eax
xor edx, edx
mov dword [esp + 0xc0], ecx
mov dl, byte [eax]
inc eax
xor ecx, ecx
mov dword [esp + 0xe4], edx
mov cl, byte [eax]
fmul dword [0x49143c]
xor edx, edx
mov dword [esp + 0xe0], ecx
mov dl, byte [eax + 1]
fld st(0)
fld dword [0x49143c]
fsub st(1)
fild dword [esp + 0xc0]
mov dword [esp + 0xdc], edx
fmul st(2)
fild dword [esp + 0x1c]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0xc4]
mov dword [esp + 0xb4], eax
fmul st(2)
fild dword [esp + 0x20]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0xc8]
mov dword [esp + 0xb8], eax
fmul st(2)
fild dword [esp + 0x24]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fstp st(0)
fstp st(0)
fld dword [0x49143c]
fsub st(1)
fild dword [esp + 0xdc]
mov dword [esp + 0xbc], eax
fmul st(2)
fild dword [esp + 0xd0]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0xe0]
mov dword [esp + 0xe8], eax
fmul st(2)
fild dword [esp + 0xd4]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0xe4]
mov dword [esp + 0xec], eax
fmul st(2)
fild dword [esp + 0xd8]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fstp st(0)
fstp st(0)
fild dword [esp + 0x40]
mov dword [esp + 0xf0], eax
fsubr dword [esp + 0x74]
fmul dword [0x49143c]
fld dword [0x49143c]
fsub st(1)
fild dword [esp + 0xe8]
fmul st(2)
fild dword [esp + 0xb4]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0xec]
mov esi, eax
fmul st(2)
fild dword [esp + 0xb8]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0xf0]
mov ebx, eax
fmul st(2)
fild dword [esp + 0xbc]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
mov ecx, esi
mov edx, ebx
mov dword [esp + 0x24], eax
add eax, edi
fstp st(0)
add ecx, edi
add edx, edi
cmp eax, 0xff
fstp st(0)
jle 0x40cfbf
mov eax, 0xff
cmp ecx, 0xff
jle 0x40cfcc
mov ecx, 0xff
cmp edx, 0xff
jle 0x40cfd9
mov edx, 0xff
fld dword [esp + 0x34]
fcomp qword [0x4914c0]
and ecx, 0x1f8
and edx, 0x3ff8
shl ecx, 5
add ecx, edx
sar eax, 3
lea ecx, [eax + ecx*4]
fnstsw ax
push ecx
test ah, 0x40
je 0x40d01e
mov edx, dword [0x4a29e8]
mov ecx, dword [esp + 0x5c]
mov eax, ebp
sub eax, edx
push eax
push ecx
mov ecx, 0x4b0ce8
call fcn.0040bcc0
jmp 0x40d04d
fld dword [esp + 0x38]
fmul dword [0x491470]
call fcn.0044eaa0
or dl, 0xff
mov ecx, dword [esp + 0x5c]
sub dl, al
mov eax, ebp
push edx
mov edx, dword [0x4a29e8]
sub eax, edx
push eax
push ecx
mov ecx, 0x4b0ce8
call fcn.0040bd20
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0xac]
inc dword [esp + 0x58]
fild dword [esp + 0x58]
fcom dword [edi]
fnstsw ax
test ah, 0x41
jne 0x40cb9d
mov esi, dword [0x4a29ec]
fstp st(0)
jmp 0x40d079
fstp st(0)
inc ebp
add edi, 4
cmp ebp, esi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], edi
jle 0x40cb44
mov ebp, dword [0x4a29e8]
sub esi, ebp
mov ecx, 0x4b0ce8
push esi
mov esi, dword [esp + 0xa8]
push esi
push ebp
push 0
call fcn.0040bec0
push 0x4b0ce8
mov ecx, 0x4b6040
call fcn.00407f20
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa8]
mov byte [0x4b6054], 1
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], ecx
cmp dword [ebx], 0
jne 0x40d0fc
mov dword [ebx], 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [0x4b6054], 0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret