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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x154
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov eax, dword [ebx]
test ah, 0x20
jne 0x503e0a
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
test ch, 0x10
jne 0x503e0a
mov edi, dword [ebx + 0x20]
test edi, edi
je 0x503e0a
mov esi, dword [ebp + 0x1c]
lea ecx, [esp + 0x54]
shr esi, 0x17
and esi, 1
push ecx
mov dword [esp + 0x14], esi
call fcn.00441620
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x58]
push edx
lea ecx, [ebx + 0x3c]
push eax
add ebx, 0x24
push ecx
push ebx
call fcn.004422e0
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x60]
lea eax, [esp + 0x58]
push edx
push eax
mov eax, dword [ebp + 8]
push ecx
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [eax + 0xc]
push ecx
mov ecx, dword [eax + 8]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
call fcn.00457300
fld qword [esp + 0x8c]
fsub qword [ebp + 0x14]
add esp, 0x38
fcomp qword [esp + 0x44]
fnstsw ax
test ah, 0x41
je 0x503e0a
fld qword [esp + 0x64]
fadd qword [ebp + 0x14]
fcomp qword [esp + 0x44]
fnstsw ax
test ah, 1
jne 0x503e0a
fld qword [esp + 0x5c]
fsub qword [ebp + 0x14]
fcomp qword [esp + 0x4c]
fnstsw ax
test ah, 0x41
je 0x503e0a
fld qword [esp + 0x6c]
fadd qword [ebp + 0x14]
fcomp qword [esp + 0x4c]
fnstsw ax
test ah, 1
jne 0x503e0a
test esi, esi
je 0x503d2d
cmp word [edi + 8], 0
je 0x503dff
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x503d3f
cmp word [edi + 6], 0
je 0x503dff
mov eax, dword [ebp + 0x10]
mov esi, dword [edi]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x24]
fld dword [esi + 8]
push ecx
push edx
push eax
sub esp, 8
fstp qword [esp]
fld dword [esi + 4]
sub esp, 8
fstp qword [esp]
fld dword [esi]
sub esp, 8
fstp qword [esp]
call fcn.00457300
mov ebx, 1
add esp, 0x24
cmp word [edi + 4], bx
jle 0x503dfb
add esi, 0x10
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0x10]
fld dword [esi + 4]
lea eax, [esp + 0x24]
push edx
push eax
push ecx
sub esp, 8
fstp qword [esp]
fld dword [esi]
sub esp, 8
fstp qword [esp]
fld dword [esi - 4]
sub esp, 8
fstp qword [esp]
call fcn.00457300
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push edx
lea ecx, [esp + 0x6c]
push eax
lea edx, [esp + 0x50]
push ecx
lea eax, [esp + 0x64]
push edx
push eax
call fcn.0049e840
add esp, 0x38
test eax, eax
je 0x503e16
movsx ecx, word [edi + 4]
inc ebx
add esi, 0xc
cmp ebx, ecx
jl 0x503d7f
mov esi, dword [esp + 0x10]
mov edi, dword [edi + 0x1c]
test edi, edi
jne 0x503d1e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x503e9c
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x503e9c
cmp word [edi + 6], 1
jne 0x503e97
lea edx, [esp + 0x24]
lea eax, [esp + 0x34]
push edx
push eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.00418a80
fst qword [esp + 0x18]
fcomp qword [0x550f20]
add esp, 8
fnstsw ax
test ah, 0x41
jne 0x503e76
lea ecx, [esp + 0x34]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.00418a80
fdiv qword [esp + 0x18]
add esp, 8
jmp 0x503e7a
fld qword [esp + 0x18]
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp + 0x20]
fld dword [eax + ebx*4]
fsub dword [eax + ebx*4 - 4]
lea eax, [eax + ebx*4]
fmul st(1)
fadd dword [eax - 4]
mov eax, ecx
fstp dword [ecx]
fstp st(0)
jmp 0x503e9c
mov edx, dword [edi + 0xc]
mov dword [eax], edx
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x503f20
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x503f20
cmp word [edi + 6], 2
jne 0x503f1b
lea eax, [esp + 0x24]
lea ecx, [esp + 0x34]
push eax
push ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.00418a80
fst qword [esp + 0x18]
fcomp qword [0x550f20]
add esp, 8
fnstsw ax
test ah, 0x41
jne 0x503efc
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
push eax
call fcn.00418a80
fdiv qword [esp + 0x18]
add esp, 8
jmp 0x503f00
fld qword [esp + 0x18]
mov ecx, dword [edi + 0x20]
mov eax, dword [ebp + 0x20]
fld dword [ecx + ebx*4]
fsub dword [ecx + ebx*4 - 4]
lea ebx, [ecx + ebx*4]
fmul st(1)
fadd dword [ebx - 4]
fstp dword [esi]
fstp st(0)
jmp 0x503f20
mov edx, dword [edi + 0x14]
mov dword [esi], edx
test eax, eax
je 0x503f60
test esi, esi
je 0x503f60
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x503f60
fld dword [eax]
mov eax, dword [ebp + 0xc]
push 0
fstp qword [esp + 0x78]
fld dword [esi]
lea ecx, [esp + 0x78]
push eax
fstp qword [esp + 0x84]
push ecx
call fcn.004beb30
lea edx, [esp + 0x90]
push 2
push edx
call fcn.0046dd40
add esp, 0x14
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x503f6d
movsx ecx, word [edi + 8]
mov dword [eax], ecx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret