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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff08
mov dword [esp], ecx
mov ebp, edx
mov ebx, eax
mov ecx, dword [esp]
mov edx, ebp
mov eax, ebx
call fcn.004e8edc
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x4e8ec3
xor edx, edx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], edx
xor edx, edx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], edx
xor edx, edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], edx
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
dec eax
test eax, eax
jl 0x4e8da5
inc eax
mov dword [esp + 0x78], eax
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
mov eax, dword [ebx + 0x14]
call fcn.0041bb18
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, ebp
sub eax, esi
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fstp qword [esp + 0x80]
wait
mov eax, dword [esp]
sub eax, edi
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fstp qword [esp + 0x88]
wait
fld qword [esp + 0x80]
fmul st(0)
fstp xword [esp + 0xec]
wait
fld qword [esp + 0x88]
fmul st(0)
fld xword [esp + 0xec]
faddp st(1)
fsqrt
fstp qword [esp + 8]
wait
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ebp*4 + 4]
mov edx, dword [esp]
fld qword [eax + edx*8]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ebp*4 - 4]
mov edx, dword [esp]
fsub qword [eax + edx*8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x38]
wait
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
fld qword [eax + edx*8 + 8]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
fsub qword [eax + edx*8 - 8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x40]
wait
mov eax, dword [esp + 0x38]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x80]
lea edx, [esp + 0x90]
mov eax, ebx
call fcn.004e8fb8
fdiv qword [esp + 8]
fabs
fstp qword [esp + 0x10]
wait
fld qword [esp + 8]
fmul st(0)
fdivr dword [0x4e8ed4]
fstp qword [esp + 0x18]
wait
mov eax, dword [ebx + 8]
mov eax, dword [eax + esi*4]
cmp dword [eax + edi*4], 1
jne 0x4e89fb
fld qword [esp + 8]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
fadd qword [eax + edx*8]
fabs
fadd dword [0x4e8ed4]
fdivr dword [0x4e8ed4]
fstp qword [esp + 0x20]
wait
jmp 0x4e8a23
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + esi*4]
fld qword [eax + edi*8]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
fsub qword [eax + edx*8]
fabs
fadd dword [0x4e8ed4]
fdivr dword [0x4e8ed4]
fstp qword [esp + 0x20]
wait
fld qword [esp + 0x10]
fcomp dword [0x4e8ed8]
fnstsw ax
sahf
jne 0x4e8a41
fld qword [esp + 0x18]
fmul qword [esp + 0x20]
fstp qword [esp + 0x28]
wait
jmp 0x4e8a52
fld qword [esp + 0x10]
fmul qword [esp + 0x18]
fmul qword [esp + 0x20]
fstp qword [esp + 0x28]
wait
cmp esi, 1
jl 0x4e8d97
cmp edi, 1
jl 0x4e8d97
mov eax, dword [ebx + 0x24]
dec eax
cmp esi, eax
jge 0x4e8d97
mov eax, dword [ebx + 0x28]
dec eax
cmp edi, eax
jge 0x4e8d97
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*4 + 4]
cmp dword [eax + edi*4], 2
je 0x4e8d97
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*4 - 4]
cmp dword [eax + edi*4], 2
je 0x4e8d97
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*4]
cmp dword [eax + edi*4 + 4], 2
je 0x4e8d97
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*4]
cmp dword [eax + edi*4 - 4], 2
je 0x4e8d97
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4 + 4]
movzx eax, byte [eax + edi]
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x48]
mov edx, dword [edx + 4]
mov edx, dword [edx + esi*4 - 4]
movzx edx, byte [edx + edi]
sub eax, edx
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x48]
wait
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movzx eax, byte [eax + edi + 1]
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x48]
mov edx, dword [edx + 4]
mov edx, dword [edx + esi*4]
movzx edx, byte [edx + edi - 1]
sub eax, edx
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x50]
wait
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xac], eax
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4 + 4]
movzx eax, byte [eax + edi]
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x4c]
mov edx, dword [edx + 4]
mov edx, dword [edx + esi*4 - 4]
movzx edx, byte [edx + edi]
sub eax, edx
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x58]
wait
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movzx eax, byte [eax + edi + 1]
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x4c]
mov edx, dword [edx + 4]
mov edx, dword [edx + esi*4]
movzx edx, byte [edx + edi - 1]
sub eax, edx
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x60]
wait
mov eax, dword [esp + 0x58]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4 + 4]
movzx eax, byte [eax + edi]
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x50]
mov edx, dword [edx + 4]
mov edx, dword [edx + esi*4 - 4]
movzx edx, byte [edx + edi]
sub eax, edx
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x68]
wait
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movzx eax, byte [eax + edi + 1]
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x50]
mov edx, dword [edx + 4]
mov edx, dword [edx + esi*4]
movzx edx, byte [edx + edi - 1]
sub eax, edx
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
fdiv dword [0x4e8ed0]
fstp qword [esp + 0x70]
wait
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xcc], eax
lea ecx, [esp + 0x80]
lea edx, [esp + 0xa0]
mov eax, ebx
call fcn.004e8fb8
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movzx eax, byte [eax + edi]
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
faddp st(1)
fmul qword [esp + 0x28]
fadd qword [esp + 0xd0]
fstp qword [esp + 0xd0]
wait
lea ecx, [esp + 0x80]
lea edx, [esp + 0xb0]
mov eax, ebx
call fcn.004e8fb8
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movzx eax, byte [eax + edi]
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
faddp st(1)
fmul qword [esp + 0x28]
fadd qword [esp + 0xd8]
fstp qword [esp + 0xd8]
wait
lea ecx, [esp + 0x80]
lea edx, [esp + 0xc0]
mov eax, ebx
call fcn.004e8fb8
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movzx eax, byte [eax + edi]
mov dword [esp + 0xe8], eax
fild dword [esp + 0xe8]
faddp st(1)
fmul qword [esp + 0x28]
fadd qword [esp + 0xe0]
fstp qword [esp + 0xe0]
wait
fld qword [esp + 0x30]
fadd qword [esp + 0x28]
fstp qword [esp + 0x30]
wait
inc dword [esp + 4]
dec dword [esp + 0x78]
jne 0x4e88b3
fld qword [esp + 0x30]
fcomp dword [0x4e8ed8]
fnstsw ax
sahf
je 0x4e8ec3
fld qword [esp + 0xd0]
fdiv qword [esp + 0x30]
call fcn.00402ff4
test eax, eax
jge 0x4e8de1
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
mov byte [eax + edx], 0
jmp 0x4e8e12
cmp eax, 0xff
jle 0x4e8dfd
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
mov byte [eax + edx], 0xff
jmp 0x4e8e12
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x48]
mov edx, dword [edx + 4]
mov edx, dword [edx + ebp*4]
mov ecx, dword [esp]
add edx, ecx
push edx
pop edx
mov byte [edx], al
fld qword [esp + 0xd8]
fdiv qword [esp + 0x30]
call fcn.00402ff4
test eax, eax
jge 0x4e8e3b
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
mov byte [eax + edx], 0
jmp 0x4e8e6c
cmp eax, 0xff
jle 0x4e8e57
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
mov byte [eax + edx], 0xff
jmp 0x4e8e6c
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x4c]
mov edx, dword [edx + 4]
mov edx, dword [edx + ebp*4]
mov ecx, dword [esp]
add edx, ecx
push edx
pop edx
mov byte [edx], al
fld qword [esp + 0xe0]
fdiv qword [esp + 0x30]
call fcn.00402ff4
test eax, eax
jge 0x4e8e95
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
mov byte [eax + edx], 0
jmp 0x4e8ec3
cmp eax, 0xff
jle 0x4e8eb1
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
mov byte [eax + edx], 0xff
jmp 0x4e8ec3
mov edx, dword [ebx + 0x4c]
mov edx, dword [edx + 0x50]
mov edx, dword [edx + 4]
mov edx, dword [edx + ebp*4]
mov ecx, dword [esp]
mov byte [edx + ecx], al
add esp, 0xf8
pop ebp
pop edi
pop esi
pop ebx
ret