Function at 0x4051a0
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 0x405225
cmp byte [ecx + 0x10], 0
jne 0x405225
inc dword [esi + 4]
xor eax, eax
jmp 0x405552
cmp dword [esi + 4], 0
mov eax, dword [ecx]
je 0x4052d3
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 8]
mov dword [esp + 8], 0x42f408
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], 0
push eax
call fcn.00408250
add esp, 4
test al, al
jne 0x405550
mov eax, dword [esi]
cmp byte [eax + 0x10], 1
jne 0x4053a2
mov ecx, 0x406e30
mov eax, dword [eax]
movd xmm0, ecx
mov ecx, 0x42f46c
movd xmm1, ecx
mov ecx, 0x40c200
movd xmm3, ecx
mov ecx, 0x431830
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], 0x431830
mov dword [esp + 0xc], 1
jmp 0x40536d
add ecx, 4
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0x406e30
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x30]
mov dword [esp + 8], 0x430c6c
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0x42f410
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [esp + 0x1c], 1
push eax
call fcn.00408250
add esp, 4
test al, al
jne 0x405550
mov eax, dword [esi]
cmp byte [eax + 0x10], 1
jne 0x4053a2
mov eax, dword [eax]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0x4050c0
mov dword [esp + 0x38], 0x42f434
mov dword [esp + 0x3c], 0x406e30
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 8], 0x42f438
mov dword [esp + 0xc], 2
lea eax, [esp + 0x30]
mov dword [esp + 0x10], 0x42f448
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [esp + 0x1c], 2
push eax
call fcn.00408250
add esp, 4
test al, al
jne 0x405550
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 0x405467
movzx ecx, byte [eax + 0x10]
test ecx, ecx
je 0x4054a0
cmp ecx, 1
jne 0x405467
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], 0x4056e0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x5c], 0x431830
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0
jmp 0x405514
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 8], 0x42f494
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 0x405528
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], 0x4056e0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x5c], 0x431830
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0x42f470
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.00408250
add esp, 4
test al, al
jne 0x405550
mov eax, dword [esi]
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
push 1
push 0x43165d
push dword [eax + 0x18]
call dword [ecx + 0xc]
add esp, 0xc
test al, al
je 0x40555a
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ebp + 0x10], 1
jne 0x40521b
cmp dword [esp + 0x4c], 2
je 0x40521b
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
cmp byte [eax + 0x10], 1
jne 0x405607
mov ecx, 0x406e30
mov eax, dword [eax]
movd xmm0, ecx
mov ecx, 0x42f434
movd xmm1, ecx
mov ecx, 0x40c200
movd xmm3, ecx
mov ecx, 0x431830
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], 0x431830
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0x42f448
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
mov dword [esp + 0x1c], 2
push eax
call fcn.00408250
add esp, 4
test al, al
jne 0x405550
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], 0x42f49c
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], 0
push edi
call fcn.00408250
add esp, 4
test al, al
jne 0x405550
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 0x405550
mov eax, dword [esi]
lea ecx, [esp + 0x5c]
mov eax, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0x406e30
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x30]
mov dword [esp + 8], 0x42f4a4
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 1
push edi
call fcn.00408250
add esp, 4
test al, al
je 0x40521b
jmp 0x405550