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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50
mov edx, dword [0x41d2b0]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov esi, ecx
xor edi, edi
cmp edx, ebx
mov dword [esp + 0x24], esi
mov byte [esp + 0x17], 0
jbe 0x405059
cmp edi, edx
jae 0x405024
mov eax, dword [0x41d2b8]
mov eax, dword [eax + edi*4]
jmp 0x405026
xor eax, eax
mov eax, dword [eax]
mov edx, dword [eax + 0x70]
xor ecx, ecx
cmp edx, ebx
jle 0x40504e
xor edx, edx
mov ebp, dword [eax + 0x74]
fld qword [0x41a2b8]
fstp qword [edx + ebp + 0x40]
mov ebp, dword [eax + 0x70]
inc ecx
add edx, 0x98
cmp ecx, ebp
jl 0x405033
mov edx, dword [0x41d2b0]
inc edi
cmp edi, edx
jb 0x40501a
cmp dword [esi + 0x78], ebx
mov dword [esp + 0x38], ebx
jle 0x405417
mov dword [esp + 0x20], ebx
jmp 0x405080
mov esi, dword [esp + 0x24]
mov edx, dword [0x41d2b0]
jmp 0x405080
mov eax, dword [esi + 0x7c]
fld qword [0x41a2b8]
mov ebx, dword [esp + 0x20]
fstp qword [esp + 0x40]
mov ebp, dword [eax + ebx]
fld qword [0x41a2b8]
mov ecx, dword [esi + 0x74]
imul ebp, ebp, 0x98
fstp qword [esp + 0x48]
add eax, ebx
mov ebx, dword [eax + 4]
imul ebx, ebx, 0x98
add ebp, ecx
add ebx, ecx
xor esi, esi
xor edi, edi
xor ecx, ecx
test edx, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ecx
jbe 0x40521e
cmp ecx, edx
jae 0x4050e3
mov edx, dword [0x41d2b8]
mov eax, dword [edx + ecx*4]
jmp 0x4050e5
xor eax, eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x24]
je 0x4051f4
mov edx, dword [eax + 0x78]
test edx, edx
jle 0x4051f4
mov ecx, dword [eax + 0x74]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], edx
jmp 0x405120
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
jmp 0x405120
mov esi, dword [eax]
mov edi, dword [eax + 4]
imul esi, esi, 0x98
imul edi, edi, 0x98
fld qword [edi + ecx + 8]
add esi, ecx
add edi, ecx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x54]
push ecx
sub esp, 0x60
fstp qword [esp + 0x58]
fld qword [edi]
fstp qword [esp + 0x50]
fld qword [esi + 8]
fstp qword [esp + 0x48]
fld qword [esi]
fstp qword [esp + 0x40]
fld qword [ebx + 8]
fstp qword [esp + 0x38]
fld qword [ebx]
fstp qword [esp + 0x30]
fld qword [ebp + 8]
fstp qword [esp + 0x28]
fld qword [ebp]
fstp qword [esp + 0x20]
fld qword [ebx + 0x60]
fstp qword [esp + 0x18]
fld qword [ebx + 0x58]
fstp qword [esp + 0x10]
fld qword [ebp + 0x60]
fstp qword [esp + 8]
fld qword [ebp + 0x58]
fstp qword [esp]
call fcn.004036b0
fld qword [esp + 0xb8]
mov ecx, eax
fcomp qword [esp + 0xa8]
add esp, 0x68
fnstsw ax
test ah, 5
jp 0x4051ce
fld qword [esp + 0x50]
mov dword [esp + 0x18], ecx
fstp qword [esp + 0x40]
mov dword [esp + 0x2c], esi
fld qword [esp + 0x58]
mov dword [esp + 0x30], edi
fstp qword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
add ecx, 0x28
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
jne 0x405110
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [0x41d2b0]
inc ecx
cmp ecx, edx
mov dword [esp + 0x34], ecx
jb 0x4050d8
fld qword [0x41a2a8]
fld qword [esp + 0x40]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x405423
mov ecx, dword [esp + 0x18]
lea eax, [ecx - 1]
cmp eax, 3
ja case.default.0x40522e
jmp dword [eax*4 + 0x405430]
fld qword [esp + 0x40]
fcomp qword [ebp + 0x40]
fnstsw ax
test ah, 5
jnp 0x405255
fld qword [esp + 0x40]
fcomp qword [ebx + 0x40]
fnstsw ax
test ah, 5
jp case.default.0x40522e
cmp ecx, 1
mov eax, edi
je 0x40525e
mov eax, esi
fld qword [esp + 0x48]
push eax
push ebx
push ebp
sub esp, 0x10
fstp qword [esp + 8]
fld qword [esp + 0x5c]
fstp qword [esp]
call fcn.00403a30
fld qword [esp + 0x5c]
add esp, 0x1c
fcomp qword [ebp + 0x40]
fnstsw ax
test ah, 5
jp 0x4052a2
fld qword [esp + 0x40]
fstp qword [ebp + 0x40]
fld qword [ebp + 0x48]
fstp qword [ebp + 0x88]
fld qword [ebp + 0x50]
fstp qword [ebp + 0x90]
fld qword [esp + 0x40]
fcomp qword [ebx + 0x40]
fnstsw ax
test ah, 5
jp 0x4052c9
fld qword [esp + 0x40]
fstp qword [ebx + 0x40]
fld qword [ebx + 0x48]
fstp qword [ebx + 0x88]
fld qword [ebx + 0x50]
fstp qword [ebx + 0x90]
mov eax, dword [esp + 0x18]
fld qword [esp + 0x40]
cmp eax, 1
jne 0x4053c4
fcomp qword [edi + 0x40]
fnstsw ax
test ah, 5
jp 0x4053ef
fld qword [esp + 0x40]
fstp qword [edi + 0x40]
fld qword [edi + 0x48]
fstp qword [edi + 0x88]
fld qword [edi + 0x50]
fstp qword [edi + 0x90]
jmp 0x4053ef
fld qword [esp + 0x40]
fcomp qword [ebp + 0x40]
fnstsw ax
test ah, 5
jp case.default.0x40522e
fld qword [esp + 0x48]
push ebp
push esi
push edi
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x41a2b8]
fstp qword [esp]
call fcn.00403a30
fld qword [esp + 0x5c]
fstp qword [ebp + 0x40]
fld qword [ebp + 0x48]
fstp qword [ebp + 0x88]
fld qword [ebp + 0x50]
fstp qword [ebp + 0x90]
jmp 0x405396
fld qword [esp + 0x40]
fcomp qword [ebx + 0x40]
fnstsw ax
test ah, 5
jp case.default.0x40522e
fld qword [esp + 0x48]
push ebx
push esi
push edi
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x41a2b8]
fstp qword [esp]
call fcn.00403a30
fld qword [esp + 0x5c]
fstp qword [ebx + 0x40]
fld qword [ebx + 0x48]
fstp qword [ebx + 0x88]
fld qword [ebx + 0x50]
fstp qword [ebx + 0x90]
fld qword [esp + 0x5c]
add esp, 0x1c
fcomp qword [edi + 0x40]
fnstsw ax
test ah, 5
jp 0x4053c0
fld qword [esp + 0x40]
fstp qword [edi + 0x40]
fld qword [edi + 0x48]
fstp qword [edi + 0x88]
fld qword [edi + 0x50]
fstp qword [edi + 0x90]
fld qword [esp + 0x40]
fcomp qword [esi + 0x40]
fnstsw ax
test ah, 5
jp case.default.0x40522e
fld qword [esp + 0x40]
fstp qword [esi + 0x40]
fld qword [esi + 0x48]
fstp qword [esi + 0x88]
fld qword [esi + 0x50]
fstp qword [esi + 0x90]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4053f4
mov byte [esp + 0x17], 1
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add edx, 0x28
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x78]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x40506c
mov al, byte [esp + 0x17]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret