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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x58bb45
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
cmp dword [esi + 0x14], edi
jle 0x50d3fc
mov eax, dword [esi + 0xc]
lea ebx, [edi + eax]
cmp ebx, dword [esi + 8]
lea ecx, [esp + 0x34]
sete byte [esp + 0x2f]
call fcn.00514470
mov edx, dword [esi + 4]
cmp ebx, dword [edx + 4]
lea ecx, [esi + 4]
mov dword [esp + 0xbc], 0
jge 0x50d3e8
mov eax, edx
cmp dword [eax], 1
jle 0x50d28e
call fcn.00520f40
mov ecx, dword [esi + 4]
mov edx, dword [ecx + ebx*4 + 0x10]
push edx
lea ecx, [esp + 0x38]
call fcn.00514cd0
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.0050d160
mov edx, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
mov eax, dword [edx]
sub eax, ecx
jns 0x50d2ba
mov ecx, eax
push ecx
push 0
lea ecx, [esp + 0x3c]
call fcn.00515ce0
mov eax, dword [esi + 0x4a]
lea ecx, [edi + 1]
mov edx, eax
imul eax, edi
imul edx, ecx
mov dword [esp + 0x38], edx
sub esp, 0x20
mov dword [esp + 0x5c], ecx
fild dword [esp + 0x58]
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x80]
fadd qword [esi + 0x24]
fstp qword [esp + 0x18]
fld qword [esi + 0x2c]
fstp qword [esp + 0x10]
fild dword [esp + 0x58]
fadd qword [esi + 0x24]
fstp qword [esp + 8]
fld qword [esi + 0x1c]
fstp qword [esp]
call fcn.00532990
fld qword [esi + 0x34]
fcomp qword [esp + 0x78]
fnstsw ax
test ah, 5
jp 0x50d327
fld qword [esi + 0x34]
fstp qword [esp + 0x78]
mov ecx, dword [esi + 0x3c]
xor eax, eax
cmp dword [ecx + 0x56], eax
je 0x50d349
mov edi, dword [ecx + 0x56]
push ebx
call fcn.00509820
mov ecx, eax
call fcn.004f6d50
push eax
mov ecx, edi
call fcn.004d1640
xor ecx, ecx
test eax, eax
je 0x50d359
mov cl, byte [eax + 0x18]
neg cl
sbb ecx, ecx
add ecx, 2
cmp byte [esp + 0x2f], 0
je 0x50d379
movzx edx, byte [esi + 0x40]
mov al, byte [esi + 0x41]
mov byte [esp + 0x30], dl
movzx edx, byte [esi + 0x42]
mov byte [esp + 0x31], al
mov byte [esp + 0x32], dl
jmp 0x50d399
movzx eax, byte [0x622220]
mov dl, byte [0x622221]
mov byte [esp + 0x30], al
movzx eax, byte [0x622222]
mov byte [esp + 0x31], dl
mov byte [esp + 0x32], al
cmp byte [esi + 0x52], 0
je 0x50d3a4
add ebx, 1
jmp 0x50d3a7
or ebx, 0xffffffff
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push ecx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x68]
push ecx
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x40]
push eax
push ebx
push ecx
mov ecx, esi
call edx
lea ecx, [esp + 0x34]
mov dword [esp + 0xbc], 0xffffffff
call fcn.005144a0
mov edi, dword [esp + 0x3c]
cmp edi, dword [esi + 0x14]
jl 0x50d251
jmp 0x50d3fc
lea ecx, [esp + 0x34]
mov dword [esp + 0xbc], 0xffffffff
call fcn.005144a0
lea eax, [esi + 0x1c]
push eax
lea ecx, [esp + 0x44]
call fcn.005329e0
mov ecx, dword [esi + 0x4a]
imul ecx, edi
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
fadd qword [esp + 0x48]
fst qword [esp + 0x48]
fcomp qword [esp + 0x58]
fnstsw ax
test ah, 5
jp 0x50d46e
lea ecx, [esp + 0x3c]
call fcn.00514470
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push 0x622220
lea ecx, [esp + 0x48]
push ecx
push eax
mov eax, dword [ebp + 8]
push 0
push eax
mov ecx, esi
mov dword [esp + 0xd4], 1
call edx
lea ecx, [esp + 0x3c]
mov dword [esp + 0xbc], 0xffffffff
call fcn.005144a0
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4