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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x88
cmp byte [0x95cd7c], 0
fldz
fldz
mov edx, dword [esp + 0xa4]
jne 0x50d1b7
cmp byte [0x95cdb1], 0
je 0x50d1c6
fcompp
xor eax, eax
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x9c], 0x1a
je 0x50d1f8
mov eax, dword [esp + 0x9c]
add eax, 0xffffffd0
cmp eax, 2
jbe 0x50d1f8
mov eax, dword [esp + 0x9c]
add eax, 0xffffffc7
cmp eax, 2
jbe 0x50d1f8
cmp dword [esp + 0x9c], 0x36
jne 0x50d214
mov eax, dword [0x9412ec]
and eax, dword [0x5fe3f4]
je 0x50d214
fcompp
xor eax, eax
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret
mov ebp, dword [0x8f3958]
test ebp, ebp
jne 0x50d230
fcompp
xor eax, eax
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret
mov ebx, dword [esp + 0x9c]
imul ebx, ebx, 0x88
add ebx, 0x6f20e0
fld dword [ebx + 0x18]
fstp st(2)
fld st(1)
fcomp dword [0x5fe3f8]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x50d2d0
mov edi, 0x6fad2c
mov eax, dword [esp + 0xa0]
fld dword [edi]
fsub dword [eax]
mov eax, dword [esp + 0xa0]
fstp dword [esp + 0x70]
fld dword [edi + 4]
fsub dword [eax + 4]
mov eax, dword [esp + 0xa0]
lea esi, [esp + 0x70]
fstp dword [esp + 0x74]
fld dword [edi + 8]
fsub dword [eax + 8]
lea edi, [esp + 0x34]
fstp dword [esp + 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x38]
fst st(1)
fmul st(0)
fld dword [esp + 0x34]
fmul st(0)
faddp st(1)
fld dword [esp + 0x3c]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x50d2d0
fcompp
xor eax, eax
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [ebx + 0x1c]
fstp dword [ebp + 0x48]
fld dword [ebx + 0x20]
fstp dword [ebp + 0x4c]
cmp dword [esp + 0xc0], 0
je 0x50d2f0
mov eax, dword [esp + 0xc0]
jmp 0x50d2f3
mov eax, dword [ebx + 0x50]
add eax, dword [0x885b48]
mov dword [ebp + 0x24], eax
mov al, byte [ebx + 0x38]
mov byte [ebp + 0x54], al
mov al, byte [ebx + 0x39]
mov byte [ebp + 0x55], al
mov ax, word [ebx + 0x24]
mov word [ebp + 0x3c], ax
fld dword [ebx + 0x2c]
fstp dword [ebp + 0x40]
cmp dword [esp + 0xbc], 0
je 0x50d330
mov ax, word [esp + 0xbc]
jmp 0x50d334
mov ax, word [ebx + 0x3e]
mov word [ebp + 0x56], ax
mov word [ebp + 0x50], 0
mov word [ebp + 0x52], 0
mov word [ebp + 0x3e], 0
mov word [ebp + 0x44], 0
mov word [ebp + 0x58], 0
mov dword [ebp + 0x2c], 0
mov eax, dword [esp + 0xa0]
fld dword [eax]
fstp dword [ebp]
mov eax, dword [esp + 0xa0]
fld dword [eax + 4]
fstp dword [ebp + 4]
mov eax, dword [esp + 0xa0]
fld dword [eax + 8]
fstp dword [ebp + 8]
fld dword [edx]
fstp dword [ebp + 0xc]
fld dword [edx + 4]
fstp dword [ebp + 0x10]
fld dword [edx + 8]
fstp dword [ebp + 0x14]
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0
mov dword [ebp + 0x38], 0
mov dword [ebp + 0x28], 0
mov eax, dword [esp + 0xb0]
cmp byte [eax + 3], 0
je 0x50d3e0
mov dl, byte [eax]
mov byte [ebp + 0x5e], dl
mov al, byte [eax + 1]
mov byte [ebp + 0x5f], al
mov eax, dword [esp + 0xb0]
mov cl, byte [eax + 2]
mov byte [ebp + 0x60], cl
mov al, byte [eax + 3]
mov byte [ebp + 0x61], al
jmp 0x50dcb6
mov dl, byte [ebx + 0x70]
mov byte [ebp + 0x5e], dl
mov al, byte [ebx + 0x71]
mov byte [ebp + 0x5f], al
mov cl, byte [ebx + 0x72]
mov byte [ebp + 0x60], cl
mov al, byte [ebx + 0x73]
mov byte [ebp + 0x61], al
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x50d408
add eax, dword [0x885b48]
mov dword [ebp + 0x28], eax
mov dl, byte [ebx + 0x74]
test dl, dl
je 0x50dcc0
movzx eax, dl
fcompp
mov dword [esp + 8], eax
call fcn.005a41d0
mov edx, dword [esp + 8]
and eax, 0xffff
add edx, edx
mov dword [esp + 0x28], edx
fldz
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x5fe3fc]
fmulp st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 8]
mov dword [esp + 0x28], eax
lea ecx, [ebp + 0x5e]
fldcw word [esp + 0x24]
fild dword [esp + 0x28]
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
fmul dword [0x5fe400]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
fstp st(1)
movzx eax, byte [ecx + 2]
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
fmul st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x18]
fldcw word [esp + 0x24]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fldcw word [esp + 0x24]
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x28]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x28]
add dword [esp + 0x1c], eax
test edx, edx
jge 0x50d534
xor edx, edx
jmp 0x50d541
cmp edx, 0xff
jle 0x50d541
mov edx, 0xff
cmp dword [esp + 0xc], 0
jge 0x50d552
mov dword [esp + 0xc], 0
jmp 0x50d564
cmp dword [esp + 0xc], 0xff
jle 0x50d564
mov dword [esp + 0xc], 0xff
cmp dword [esp + 0x1c], 0
jge 0x50d575
mov dword [esp + 0x1c], 0
jmp 0x50d587
cmp dword [esp + 0x1c], 0xff
jle 0x50d587
mov dword [esp + 0x1c], 0xff
mov byte [ecx], dl
mov al, byte [esp + 0xc]
mov byte [ecx + 1], al
mov al, byte [esp + 0x1c]
fstp st(0)
mov byte [ecx + 2], al
mov eax, dword [esp + 0xb8]
mov word [ebp + 0x5c], ax
mov ax, word [ebp + 0x5c]
cmp ax, 0x168
jl 0x50d5b6
sub word [ebp + 0x5c], 0x168
jmp 0x50d5c1
test ax, ax
jge 0x50d5c1
add word [ebp + 0x5c], 0x168
cmp dword [esp + 0xb4], 0
je 0x50d5d5
mov ax, word [esp + 0xb4]
jmp 0x50d5d9
mov ax, word [ebx + 0x44]
mov word [ebp + 0x5a], ax
call fcn.005a41d0
movzx eax, ax
and eax, 1
je 0x50d5f5
mov ax, word [ebp + 0x5a]
imul eax, eax, 0xffffffff
mov word [ebp + 0x5a], ax
mov dword [ebp + 0x18], 0
fld dword [ebx + 0x54]
fcomp dword [0x5fe3f8]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x50d6ab
call fcn.005a41d0
movzx ecx, ax
mov eax, 0x66666667
fld dword [ebx + 0x54]
mov edx, ecx
mov esi, edx
imul edx
shr esi, 0x1f
sar edx, 3
add esi, edx
imul esi, esi, 0x14
sub ecx, esi
fmul dword [ecx*4 + 0x6e98c8]
fadd dword [ebp]
fstp dword [ebp]
call fcn.005a41d0
movzx edi, ax
mov eax, 0x66666667
fld dword [ebx + 0x54]
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
sar edx, 3
add ecx, edx
imul ecx, ecx, 0x14
sub edi, ecx
fmul dword [edi*4 + 0x6e98c8]
fadd dword [ebp + 4]
fstp dword [ebp + 4]
mov eax, dword [ebx + 0x6c]
and eax, 0x20
je 0x50d6ab
call fcn.005a41d0
movzx esi, ax
mov eax, 0x66666667
fld dword [ebx + 0x54]
mov edx, esi
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub esi, edi
fmul dword [esi*4 + 0x6e98c8]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebx + 0x58]
fcomp dword [0x5fe3f8]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x50d75a
call fcn.005a41d0
movzx edi, ax
mov eax, 0x66666667
fld dword [ebx + 0x58]
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
sar edx, 3
add ecx, edx
imul ecx, ecx, 0x14
sub edi, ecx
fmul dword [edi*4 + 0x6e98c8]
fadd dword [ebp + 0xc]
fstp dword [ebp + 0xc]
call fcn.005a41d0
movzx esi, ax
mov eax, 0x66666667
fld dword [ebx + 0x58]
mov edx, esi
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub esi, edi
fmul dword [esi*4 + 0x6e98c8]
fadd dword [ebp + 0x10]
fstp dword [ebp + 0x10]
mov eax, dword [ebx + 0x6c]
and eax, 0x20
je 0x50d75a
call fcn.005a41d0
movzx ecx, ax
mov eax, 0x66666667
fld dword [ebx + 0x58]
mov edx, ecx
mov esi, edx
imul edx
shr esi, 0x1f
sar edx, 3
add esi, edx
imul esi, esi, 0x14
sub ecx, esi
fmul dword [ecx*4 + 0x6e98c8]
fadd dword [ebp + 0x14]
fstp dword [ebp + 0x14]
fld dword [ebx + 0x5c]
fcomp dword [0x5fe3f8]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x50d7a3
call fcn.005a41d0
movzx edi, ax
mov eax, 0x66666667
fld dword [ebx + 0x5c]
mov edx, edi
mov ecx, edx
imul edx
shr ecx, 0x1f
fld st(0)
sar edx, 3
add ecx, edx
imul ecx, ecx, 0x14
sub edi, ecx
fmul dword [edi*4 + 0x6e98c8]
fadd st(1)
fadd dword [ebp + 0x4c]
fstp dword [ebp + 0x4c]
fstp st(0)
cmp dword [ebx + 0x60], 0
je 0x50d7c4
call fcn.005a41d0
movzx eax, ax
mov esi, dword [ebx + 0x60]
xor edx, edx
lea edi, [esi + esi]
div edi
movsx eax, dx
sub eax, esi
add word [ebp + 0x5a], ax
cmp dword [ebx + 0x64], 0
je 0x50dcc7
call fcn.005a41d0
movzx ecx, ax
mov eax, 0x66666667
mov edx, ecx
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub ecx, edi
fld dword [ecx*4 + 0x6e98c8]
fcom dword [0x5fe3f8]
fnstsw ax
test ah, 0x45
jne 0x50d870
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x64]
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 0x24]
fmul st(1)
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
fmulp st(1)
fild qword [esp + 0x28]
faddp st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp qword [esp + 0x28]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x24], eax
jmp 0x50dcd0
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x64]
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 0x24]
fmul st(1)
fild qword [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
fdivp st(1)
fild qword [esp + 0x28]
faddp st(1)
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp qword [esp + 0x28]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x28]
fldz
mov dword [ebp + 0x24], eax
mov eax, dword [ebx + 0x6c]
and eax, 1
je 0x50dcd7
cmp byte [0x6490b8], 0
jne 0x50d8f1
mov byte [0x6490b8], 1
cmp byte [0x6490cd], 0
jne 0x50d908
mov byte [0x6490cd], 1
mov byte [0x6490cc], 0
cmp byte [0x6490cc], 0
je 0x50d980
mov eax, dword [esp + 0xa0]
xor cl, cl
fld dword [eax]
fcomp dword [0x6490bc]
fnstsw ax
xor dl, dl
and ah, 0x44
cmp ah, 0x40
jne 0x50d94a
mov eax, dword [esp + 0xa0]
fld dword [eax + 4]
fcomp dword [0x6490c0]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x50d94a
mov dl, 1
test dl, dl
je 0x50d96a
mov eax, dword [esp + 0xa0]
fld dword [eax + 8]
fcomp dword [0x6490c4]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x50d96a
mov cl, 1
test cl, cl
je 0x50d980
fld dword [0x6490c8]
fstp dword [ebp + 0x2c]
jmp 0x50dce0
mov byte [0x6490cc], 0
lea esi, [esp + 0x68]
fld dword [ebp + 8]
fadd dword [0x5fe404]
lea eax, [esp + 0x40]
push 0
fstp st(1)
fld dword [ebp + 4]
fadd dword [0x5fe3f8]
push 0
push 1
fstp st(2)
fld dword [ebp]
fadd dword [0x5fe3f8]
push 0
push 0
fstp dword [esp + 0x90]
fld st(1)
fstp dword [esp + 0x94]
fst dword [esp + 0x98]
fcompp
push 1
push 1
push esi
push eax
lea eax, [esp + 0xa0]
push dword [0x5fe408]
push eax
call fcn.004b0de0
add esp, 0x2c
test al, al
fldz
je 0x50da60
fld dword [esp + 0x48]
fst st(1)
fcomp dword [ebp + 8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x50da50
fst dword [ebp + 0x2c]
mov eax, dword [esp + 0xa0]
mov byte [0x6490cc], 1
fld dword [eax]
mov eax, dword [esp + 0xa0]
fstp dword [0x6490bc]
fld dword [eax + 4]
mov eax, dword [esp + 0xa0]
fstp dword [0x6490c0]
fld dword [eax + 8]
fstp dword [0x6490c4]
fld dword [esp + 0x48]
fstp dword [0x6490c8]
jmp 0x50dce7
xor eax, eax
add esp, 0x88
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
xor eax, eax
add esp, 0x88
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [ebx + 0x6c]
and eax, 0x1000
je 0x50daed
cmp byte [0x6490d4], 0
jne 0x50da94
mov byte [0x6490d4], 1
mov dword [0x6490d0], 0
mov eax, dword [ebx + 0x6c]
and eax, 0x2000
je 0x50dae4
mov byte [esp + 0x6f], 0
lea eax, [esp + 0x6f]
push eax
mov eax, dword [esp + 0xa4]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
call fcn.004b3ae0
add esp, 0x10
cmp byte [esp + 0x6f], 0
fstp dword [0x6490d0]
je 0x50dad7
fld dword [0x6490d0]
fstp dword [ebp + 0x2c]
jmp 0x50dae4
xor eax, eax
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [0x6490d0]
fstp dword [ebp + 0x2c]
mov edx, dword [esp + 0x9c]
mov eax, edx
sub eax, 7
je 0x50db50
sub eax, 0x1a
je 0x50db80
sub eax, 1
je 0x50dbf8
sub eax, 7
jne 0x50dc71
call fcn.005a41d0
movzx ecx, ax
mov eax, 0x66666667
fld dword [0x5fe40c]
mov edx, ecx
mov edi, edx
imul edx
shr edi, 0x1f
fmul dword [ebx + 0x54]
sar edx, 3
add edi, edx
imul edi, edi, 0x14
sub ecx, edi
fmul dword [ecx*4 + 0x6e98c8]
fadd dword [ebp + 8]
jmp 0x50dc6e
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x5fe3fc]
fmul dword [0x5fe410]
fadd dword [0x5fe404]
fmul dword [ebp + 0x14]
fstp dword [ebp + 0x14]
jmp 0x50dc71
call fcn.005a41d0
movzx esi, ax
and esi, 1
mov ecx, esi
lea eax, [esi*2]
shl ecx, 5
sub ecx, eax
sub byte [ebp + 0x54], cl
call fcn.005a41d0
and eax, 7
mov word [ebp + 0x58], ax
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x5fe3fc]
fmul dword [0x5fe404]
fadd dword [0x5fe414]
fstp dword [ebp + 0x48]
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x5fe3fc]
fmul dword [0x5fe418]
fadd dword [0x5fe41c]
fsubr dword [ebp + 8]
jmp 0x50dc6e
call fcn.005a41d0
movzx edi, ax
and edi, 1
mov edx, edi
lea eax, [edi*2]
shl edx, 5
sub edx, eax
sub byte [ebp + 0x54], dl
call fcn.005a41d0
and eax, 7
mov word [ebp + 0x58], ax
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x5fe3fc]
fmul dword [0x5fe420]
fadd dword [0x5fe424]
fstp dword [ebp + 0x48]
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x5fe3fc]
fmul dword [0x5fe428]
fadd dword [0x5fe42c]
fsubr dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [0x5fe3f8]
fcomp dword [esp + 0xac]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x50dc92
fld dword [esp + 0xac]
fstp dword [ebp + 0x48]
mov eax, dword [ebp + 0x64]
mov dword [0x8f3958], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0x64], eax
mov dword [ebx + 0x84], ebp
add esp, 0x88
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x50d599
fcompp
jmp 0x50d599
fldz
fldz
jmp 0x50d8d5
fldz
jmp 0x50d8d5
fcompp
jmp 0x50da70
fcompp
jmp 0x50da70
fstp st(0)
jmp 0x50da70