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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x7c], edx
test edx, edx
mov edi, dword [ecx + 0x24]
movq xmm0, qword [ecx + 0x14]
movq xmm2, qword [ecx + 0x1c]
movq xmm1, qword [ecx + 0xc]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x98], edi
mov edi, dword [ecx]
movq qword [esp + 0x88], xmm0
movq qword [esp + 0x90], xmm2
movq qword [esp + 0x80], xmm1
mov dword [esp + 0x50], edi
mov edi, dword [ecx + 8]
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x78], ecx
mov ecx, dword [esi]
mov dword [esp + 0x74], eax
jne 0x40e0a5
cmp byte [ecx + 0x10], 0
jne 0x40e0a5
inc dword [esi + 4]
xor eax, eax
jmp 0x40e3d2
cmp dword [esi + 4], 0
mov eax, dword [ecx]
je 0x40e153
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 8]
mov dword [esp + 8], 0x445918
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], 0
push eax
call fcn.004113e0
add esp, 4
test al, al
jne 0x40e3d0
mov eax, dword [esi]
cmp byte [eax + 0x10], 1
jne 0x40e222
mov ecx, 0x40ffc0
mov eax, dword [eax]
movd xmm0, ecx
mov ecx, 0x44597c
movd xmm1, ecx
mov ecx, 0x40ce30
movd xmm3, ecx
mov ecx, 0x4483a0
punpckldq xmm1, xmm0
movd xmm2, ecx
punpckldq xmm2, xmm3
punpcklqdq xmm2, xmm1
movdqa xmmword [esp + 0x30], xmm2
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 8], 0x4483a0
mov dword [esp + 0xc], 1
jmp 0x40e1ed
add ecx, 4
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0x40ffc0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x30]
mov dword [esp + 8], 0x447168
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0x445920
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [esp + 0x1c], 1
push eax
call fcn.004113e0
add esp, 4
test al, al
jne 0x40e3d0
mov eax, dword [esi]
cmp byte [eax + 0x10], 1
jne 0x40e222
mov eax, dword [eax]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0x40df40
mov dword [esp + 0x38], 0x445944
mov dword [esp + 0x3c], 0x40ffc0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 8], 0x445948
mov dword [esp + 0xc], 2
lea eax, [esp + 0x30]
mov dword [esp + 0x10], 0x445958
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [esp + 0x1c], 2
push eax
call fcn.004113e0
add esp, 4
test al, al
jne 0x40e3d0
mov eax, dword [esp + 0x98]
movq xmm0, qword [esp + 0x90]
movq xmm2, qword [esp + 0x80]
movq xmm1, qword [esp + 0x88]
cmp edi, 4
mov dword [esp + 0x48], eax
movq qword [esp + 0x40], xmm0
movq qword [esp + 0x38], xmm1
movq qword [esp + 0x30], xmm2
mov eax, dword [esi]
je 0x40e2e7
movzx ecx, byte [eax + 0x10]
test ecx, ecx
je 0x40e320
cmp ecx, 1
jne 0x40e2e7
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0xc], ebx
movq xmm1, qword [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], edi
movsd qword [esp + 0x14], xmm0
movq xmm0, qword [esp + 0x40]
mov ecx, dword [esp + 0x48]
movq qword [esp + 0x1c], xmm1
mov dword [esp + 0x2c], ecx
movq qword [esp + 0x24], xmm0
lea ecx, [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 0x40e560
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x5c], 0x4483a0
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0
jmp 0x40e394
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 8], 0x4459a4
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], 0
lea eax, [esp + 8]
jmp 0x40e3a8
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0xc], ebx
movq xmm1, qword [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], edi
movsd qword [esp + 0x14], xmm0
movq xmm0, qword [esp + 0x40]
mov ecx, dword [esp + 0x48]
movq qword [esp + 0x1c], xmm1
mov dword [esp + 0x2c], ecx
movq qword [esp + 0x24], xmm0
lea ecx, [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 0x40e560
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x5c], 0x4483a0
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0x445980
mov dword [esp + 0x68], 1
lea eax, [esp + 0x54]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x70], 1
push eax
call fcn.004113e0
add esp, 4
test al, al
jne 0x40e3d0
mov eax, dword [esi]
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
push 1
push 0x4481ed
push dword [eax + 0x18]
call dword [ecx + 0xc]
add esp, 0xc
test al, al
je 0x40e3da
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ebp + 0x10], 1
jne 0x40e09b
cmp dword [esp + 0x4c], 2
je 0x40e09b
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
cmp byte [eax + 0x10], 1
jne 0x40e487
mov ecx, 0x40ffc0
mov eax, dword [eax]
movd xmm0, ecx
mov ecx, 0x445944
movd xmm1, ecx
mov ecx, 0x40ce30
movd xmm3, ecx
mov ecx, 0x4483a0
punpckldq xmm1, xmm0
movd xmm2, ecx
punpckldq xmm2, xmm3
punpcklqdq xmm2, xmm1
movdqa xmmword [esp + 0x30], xmm2
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x30]
mov dword [esp + 8], 0x4483a0
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0x445958
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [esp + 0x1c], 2
push eax
call fcn.004113e0
add esp, 4
test al, al
jne 0x40e3d0
mov eax, dword [esi]
mov eax, dword [eax]
lea edi, [esp + 8]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 8], 0x4459ac
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], 0
push edi
call fcn.004113e0
add esp, 4
test al, al
jne 0x40e3d0
mov eax, dword [esi]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0xc]
push ebx
push eax
push ecx
call dword [edx + 0xc]
add esp, 0xc
test al, al
jne 0x40e3d0
mov eax, dword [esi]
lea ecx, [esp + 0x5c]
mov eax, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0x40ffc0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x30]
mov dword [esp + 8], 0x4459b4
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 1
push edi
call fcn.004113e0
add esp, 4
test al, al
je 0x40e09b
jmp 0x40e3d0