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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
cmp byte [ebp + 0x20], 0
push ebx
push esi
push edi
push 0
mov dword [esp + 0x5c], edx
mov byte [esp + 0x18], cl
pop esi
je 0x4d1556
mov dword [esp + 0x10], 0x1828
cmp dword [esp + 0x10], 0xe86
jge 0x4d145e
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x58]
push eax
push 0xac230c
call fcn.004fad78
add esp, 0xc
mov dword [esp + 0x7c], esi
lea eax, [esp + 0x7c]
mov dword [esp + 0x70], esi
lea ecx, [esp + 0x70]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
push eax
mov eax, dword [esp + 0x50]
inc eax
push eax
call fcn.0042a78f
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x70]
test ecx, ecx
jle 0x4d142c
mov edi, 0xac224c
lea eax, [esp + 0x60]
push eax
push edi
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0x60]
xor eax, eax
inc eax
sub eax, dword [ebx + ecx*4]
inc esi
mov dword [ebx + ecx*4], eax
mov ecx, dword [esp + 0x54]
cmp esi, ecx
jl 0x4d1407
xor esi, esi
xor edx, edx
mov eax, esi
inc edx
cmp dword [esp + 0x4c], edx
jl 0x4d1441
add eax, dword [ebx + edx*4]
inc edx
cmp edx, dword [esp + 0x4c]
jle 0x4d1437
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
push ecx
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
lea ecx, [esp + 0x70]
call fcn.0042a773
cmp byte [esp + 0x14], 0
je 0x4d152e
mov dword [esp + 0x10], 0x252a
cmp dword [esp + 0x10], 0x77f
jge 0x4d1506
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x8c]
push eax
push 0xac248c
call fcn.004fad78
movsd xmm0, qword [esp + 0x94]
add esp, 0xc
call fcn.00514bf0
mulsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x80]
call fcn.00514bf0
mulsd xmm0, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x58]
subsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d14ee
push 0xac2a68
jmp 0x4d1500
comisd xmm0, xmm1
mov eax, 0xac2c10
mov ecx, 0xac2c14
cmovbe eax, ecx
push eax
call fcn.004fb4f7
pop ecx
mov edx, dword [ebp + 0x10]
mov dword [edx], esi
cmp dword [edx], 1
jge 0x4d183e
mov esi, dword [ebp + 0x14]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xc717898a
inc dword [edx]
cmp dword [edx], 1
jl 0x4d1517
jmp 0x4d183e
mov edx, dword [ebp + 0x1c]
mov dword [edx], esi
cmp dword [edx], 1
jge 0x4d183e
mov esi, dword [ebp + 0x18]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xdb77
inc dword [edx]
cmp dword [edx], 1
jl 0x4d153f
jmp 0x4d183e
mov dword [esp + 0x10], 0x1eb1
cmp dword [esp + 0x10], 0xf7d
jge 0x4d171b
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xa8]
push eax
push 0xac2314
call fcn.004fad78
add esp, 0x10
lea ecx, [esp + 0xa4]
push dword [esp + 0x28]
call fcn.00428b0d
cmp dword [esp + 0x28], 0
mov edi, 0xac224c
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x38], eax
jle 0x4d15c9
mov ebx, eax
push ebx
push edi
call fcn.004fad78
inc esi
add ebx, 4
pop ecx
pop ecx
cmp esi, dword [esp + 0x28]
jl 0x4d15b4
xor esi, esi
push dword [esp + 0x20]
lea ecx, [esp + 0x98]
call fcn.00428b0d
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], esi
test ecx, ecx
jle 0x4d1603
mov ebx, dword [esp + 0x94]
push ebx
push edi
call fcn.004fad78
pop ecx
pop ecx
mov ecx, dword [esp + 0x20]
inc esi
add ebx, 4
cmp esi, ecx
jl 0x4d15ec
xor esi, esi
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
mov ebx, esi
mov dword [esp + 0x30], edx
mov edi, esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], esi
jle 0x4d16c8
xor edi, edi
inc edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x64], esi
mov eax, esi
mov dword [esp + 0x48], eax
test ecx, ecx
jle 0x4d1677
mov eax, dword [esp + 0x38]
mov ebx, esi
mov edi, dword [esp + 0x94]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [edi + esi*4]
cdq
idiv dword [esp + 0x24]
neg edx
sbb edx, edx
inc edx
add ebx, edx
inc esi
cmp esi, ecx
jl 0x4d164d
mov edi, dword [esp + 0x10]
xor esi, esi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
cmp eax, edx
jge 0x4d168d
mov dword [esp + 0x30], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x68], edi
jmp 0x4d1697
jne 0x4d16ad
mov dword [esp + 0x6c], edi
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x40]
call fcn.00428c5d
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x38], 4
inc edi
mov dword [esp + 0x10], edi
lea eax, [edi - 1]
cmp eax, dword [esp + 0x28]
jl 0x4d162c
mov edi, dword [esp + 0x40]
sub edi, ebx
sar edi, 2
push edi
push 0xac2258
call fcn.004fb3a8
mov ebx, esi
pop ecx
pop ecx
test edi, edi
je 0x4d16fa
mov esi, dword [esp + 0x3c]
push dword [esi + ebx*4]
push 0xac2284
call fcn.004fb3a8
inc ebx
pop ecx
pop ecx
cmp ebx, edi
jb 0x4d16e4
xor esi, esi
lea ecx, [esp + 0x3c]
call fcn.0042a773
lea ecx, [esp + 0x94]
call fcn.0042a773
lea ecx, [esp + 0xa4]
call fcn.0042a773
cmp byte [ebp + 8], 0
je 0x4d1750
mov dword [esp + 0x24], 0x1d34
mov eax, dword [esp + 0x24]
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x4d183e
push 0x760c
push esi
mov ecx, 0x489c
call fcn.004d01a1
pop ecx
pop ecx
jmp 0x4d183e
mov dword [esp + 0x24], 0x15fe
cmp dword [esp + 0x24], 0xfa5
jge 0x4d182f
lea eax, [esp + 0x50]
mov dword [esp + 0x2c], esi
push eax
lea eax, [esp + 0x30]
mov dword [esp + 0x54], esi
push eax
push 0xac230c
call fcn.004fad78
add esp, 0xc
jmp 0x4d1823
dec eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], esi
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x24], esi
push eax
push 0xac2314
call fcn.004fad78
mov ebx, dword [esp + 0x44]
add esp, 0x10
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
jne 0x4d17c9
mov edx, dword [esp + 0x1c]
jmp 0x4d1816
mov eax, dword [esp + 0x50]
dec ebx
dec ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], ecx
lea edi, [eax*2 - 2]
mov eax, dword [esp + 0x1c]
cdq
idiv edi
mov edx, eax
imul edx, edi
cmp ebx, ecx
jge 0x4d17fd
lea ecx, [edx + ebx]
cmp ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jl 0x4d180b
cmp ebx, ecx
jle 0x4d180d
mov eax, edi
sub eax, ebx
add eax, edx
cmp eax, dword [esp + 0x1c]
jge 0x4d180d
add edx, edi
sub edi, ecx
cmp ebx, ecx
cmovl edi, ecx
add edx, edi
push edx
push 0xac2258
call fcn.004fb3a8
pop ecx
pop ecx
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4d178a
mov eax, dword [esp + 0x58]
cmp byte [eax], 0
je 0x4d183e
call dword [0xd00110]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret