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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov edi, dword [ebp + 8]
lea eax, [esp + 0x28]
push eax
call fcn.0040edd0
add esp, 4
mov esi, dword [esp + 0x28]
mov eax, esi
neg eax
jno 0x40ece2
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov dword [esp], eax
call fcn.0040ce60
test eax, eax
je 0x40ed91
movdqu xmm0, xmmword [eax]
movsd xmm1, qword [0x57b688]
movsd xmm2, qword [0x57b680]
movd ecx, xmm0
add ecx, 1
adc dword [eax + 4], 0
test edi, edi
mov dword [eax], ecx
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm2
movdqu xmmword [esp + 0x70], xmm0
je 0x40ed33
lea ebx, [esp + 0x53]
lea esi, [esp + 0x34]
jmp 0x40eb40
lea esi, [esp + 0x34]
mov edi, dword [esp + 4]
test edi, edi
je 0x40ed33
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
lea eax, [edi + 0x28]
push eax
push esi
call fcn.0043f230
add esp, 8
xor eax, eax
cmp eax, dword [esp + 0x34]
jo 0x40eb34
mov eax, dword [esp + 0x3c]
movsd xmm0, qword [esp + 0x34]
mov dword [esp + 0x88], eax
movsd qword [esp + 0x80], xmm0
mov edi, dword [edi + 0x10]
push 0
call fcn.004162b0
add esp, 4
test eax, eax
je 0x40ed76
movdqu xmm0, xmmword [eax]
movsd xmm2, qword [0x57c180]
movsd xmm1, qword [0x57c188]
movd ecx, xmm0
add ecx, 1
adc dword [eax + 4], 0
test edi, edi
mov dword [eax], ecx
movdqu xmmword [esp + 0x18], xmm0
movsd qword [esp + 8], xmm2
movsd qword [esp + 0x10], xmm1
jne 0x40ecae
movsd xmm1, qword [esp + 0x18]
movq xmm0, qword [esp + 0x20]
movsd xmm2, qword [esp + 8]
lea eax, [esp + 0x90]
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x10]
movq qword [esp + 0xa8], xmm0
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x98], xmm1
push eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.004171b0
add esp, 0x10
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x40eb30
mov esi, dword [esp + 0xc]
test esi, esi
je 0x40eb30
lea eax, [esi + 1]
mov edx, 0x12
mul edx
add eax, 0xf
and eax, 0xfffffff0
add esi, eax
add esi, 0x11
je 0x40eb30
sub ecx, eax
push 0x10
push esi
push ecx
call fcn.0040cd20
add esp, 0xc
jmp 0x40eb30
mov ecx, dword [edx + 4]
xor edx, edx
mov edi, dword [esp + 0x48]
movq xmm0, qword [esp + 0x40]
mov dword [ebx + 8], edi
movq qword [ebx], xmm0
mov byte [esp + 0x4e], dl
mov dword [esp + 0x4f], ecx
mov byte [esp + 0x5f], al
lea eax, [esp + 0x4e]
push eax
lea eax, [esp + 0xc]
push eax
call fcn.00416d30
add esp, 8
test esi, esi
mov edi, esi
je 0x40ebc6
mov edx, dword [edi + 0xc]
mov esi, dword [edi + 8]
test edx, edx
je 0x40eca4
movzx ecx, word [edx]
movzx eax, byte [edi + 0x2c]
cmp ecx, 2
je 0x40ec70
cmp ecx, 0x17
jne 0x40eca4
mov edi, dword [edx + 0x14]
mov ecx, dword [edx + 8]
mov dword [esp + 0x48], edi
movq xmm0, qword [edx + 0xc]
mov dl, 1
movq qword [esp + 0x40], xmm0
jmp 0x40ec75
call fcn.0040ce60
test eax, eax
je 0x40ed91
movsd xmm0, qword [0x57b688]
movsd qword [edi + 8], xmm0
movsd xmm0, qword [0x57b680]
movsd qword [edi], xmm0
movdqu xmm0, xmmword [eax]
movd ecx, xmm0
add ecx, 1
adc dword [eax + 4], 0
test esi, esi
mov dword [eax], ecx
movdqu xmmword [edi + 0x10], xmm0
je 0x40ed6c
push 1
push esi
push dword [esp + 0x34]
call fcn.0040cd20
add esp, 0xc
jmp 0x40ed6c
mov edi, dword [ebp + 8]
movsd xmm1, qword [esp + 0x70]
movq xmm0, qword [esp + 0x78]
movsd xmm2, qword [esp + 0x60]
movsd qword [edi + 0x10], xmm1
movsd xmm1, qword [esp + 0x68]
movq qword [edi + 0x18], xmm0
movsd qword [edi], xmm2
movsd qword [edi + 8], xmm1
push dword [esp]
call sub.msvcrt.dll_free
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x57bad8
push 0x57bb48
lea eax, [esp + 0x10]
push eax
push 0x46
push 0x57ba40
call fcn.004dafa0
lea eax, [esp + 8]
push 0x57b654
push 0x57b424
push eax
push 0x46
push 0x57b5be
call fcn.004dafa0
nop dword [eax]
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push dword [eax]
call sub.msvcrt.dll_free
add esp, 4
pop ebp
ret