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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x7c
mov ebp, eax
mov esi, dword [0x52cfb4]
mov eax, 0x200
xor esi, esp
mov dword [esp + 0x78], esi
mov esi, 0xd0
push ecx
push edx
push dword [ebp]
cmp dword [esp + 0xbc], 0
cmovne esi, eax
call fcn.0041b350
add esp, 0xc
test eax, eax
je 0x416c1e
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x417103
mov eax, 0xffffffff
add esp, 0x7c
pop ebp
pop ebx
pop edi
pop esi
ret
lea ebx, [esp + 0x1c]
lea eax, [esp + 0x18]
lea edx, [esp + 0x14]
push ebx
push eax
push edx
push dword [ebp]
call fcn.0041c7c0
add esp, 0x10
cmp eax, 0xfffffff6
jne 0x416c61
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x417103
xor eax, eax
add esp, 0x7c
pop ebp
pop ebx
pop edi
pop esi
ret
test eax, eax
je 0x416c8c
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x417103
mov eax, 0xffffffff
add esp, 0x7c
pop ebp
pop ebx
pop edi
pop esi
ret
cmp esi, dword [esp + 0x1c]
je 0x416cb4
push dword [ebp]
call fcn.0041ffb0
push esi
push 3
push 0
push dword [ebp]
call fcn.00420200
push 0
push dword [ebp]
call fcn.00417670
add esp, 0x1c
xor eax, eax
lea edi, [esp + 0xc]
mov dword [edi], eax
lea esi, [esp + 0x10]
push edi
push esi
push eax
push dword [ebp]
call fcn.004198b0
add esp, 0x10
cmp dword [esp + 0xc], 0
jne 0x416cde
cmp eax, 0xfffffff5
je 0x417219
cmp eax, 0xffffffff
je 0x4171fa
mov edi, dword [esp + 0xc]
mov ebx, edi
mov ecx, edi
xor edx, edx
shr ebx, 2
shr ecx, 1
cmp dword [esp + 0xb0], 0
mov esi, dword [esp + 0x18]
cmovne ecx, ebx
mov eax, ecx
div esi
mov ebx, eax
test edi, edi
je 0x416e34
mov edx, dword [esp + 0x10]
test edx, edx
je 0x416e34
cmp dword [esp + 0xb0], 0
je 0x416d89
cmp esi, 2
je 0x417151
test ebx, ebx
jle 0x416e34
cmp ebx, 0x18
jle 0x417108
mov edi, dword [esp + 0x9c]
lea esi, [ebx*4]
sub edi, edx
xor ecx, ecx
mov eax, 1
cmp edi, esi
mov dword [esp], edx
mov edx, ecx
cmovg edx, eax
neg edi
cmp edi, esi
cmovle eax, ecx
or edx, eax
mov edx, dword [esp]
je 0x417108
push esi
push edx
push dword [esp + 0xa4]
call fcn.0048a330
jmp 0x416e31
cmp esi, 2
jne 0x416e20
mov edi, ecx
shr edi, 1
test edi, edi
jle 0x416e34
shr ecx, 2
je 0x4171f0
mov dword [esp + 4], ebx
xor esi, esi
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
movzx ebp, word [edx + esi*8]
mov word [ebx + esi*4], bp
movzx ebp, word [edx + esi*8 + 2]
mov word [eax + esi*4], bp
movzx ebp, word [edx + esi*8 + 4]
mov word [ebx + esi*4 + 2], bp
movzx ebp, word [edx + esi*8 + 6]
mov word [eax + esi*4 + 2], bp
inc esi
cmp esi, ecx
jb 0x416dbf
mov ebx, dword [esp + 4]
lea ecx, [esi + esi + 1]
mov ebp, dword [esp + 8]
lea esi, [ecx - 1]
cmp esi, edi
jae 0x416e34
mov edi, dword [esp + 0x9c]
movzx esi, word [edx + ecx*4 - 4]
mov word [edi + ecx*2 - 2], si
mov esi, dword [esp + 0xa0]
movzx edx, word [edx + ecx*4 - 2]
mov word [esi + ecx*2 - 2], dx
jmp 0x416e34
lea ecx, [ebx + ebx]
push ecx
push edx
push dword [esp + 0xa4]
call fcn.0048a330
add esp, 0xc
mov esi, dword [esp + 0xac]
test esi, esi
je 0x416e9c
pxor xmm0, xmm0
movdqu xmmword [esi], xmm0
movdqu xmmword [esi + 0x10], xmm0
movq qword [esi + 0x20], xmm0
lea edx, [esp + 0x4c]
push edx
push dword [ebp]
call fcn.0041bec0
add esp, 8
test eax, eax
jne 0x416e9c
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esi], 1
mov dword [esi + 8], ecx
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edx
push dword [ebp]
call fcn.00424d30
add esp, 4
mov edx, dword [esp + 0x6c]
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], edx
mov esi, dword [esp + 0xa4]
test esi, esi
je 0x416ebf
lea edx, [esp]
push 0
push edx
push 5
push dword [ebp]
call fcn.004178f0
add esp, 0x10
mov edx, dword [esp]
mov dword [esi], edx
mov esi, dword [esp + 0xa8]
test esi, esi
je 0x416ee4
lea edx, [esp + 4]
push 0
push edx
push 6
push dword [ebp]
call fcn.004178f0
add esp, 0x10
mov edx, dword [esp + 4]
mov dword [esi], edx
mov esi, dword [ebp + 0x5068]
test esi, esi
je 0x4170e3
push 0x4800
lea edx, [ebp + 8]
push edx
lea ecx, [esi + 0x11b18]
push ecx
call fcn.0048a330
add esp, 0xc
mov edx, 0x2c0
movups xmm0, xmmword [ebp + edx + 0x47f8]
movups xmmword [esi + edx + 0x30248], xmm0
movups xmm1, xmmword [ebp + edx + 0x47e8]
movups xmmword [esi + edx + 0x30238], xmm1
movups xmm2, xmmword [ebp + edx + 0x47d8]
movups xmmword [esi + edx + 0x30228], xmm2
movups xmm3, xmmword [ebp + edx + 0x47c8]
movups xmmword [esi + edx + 0x30218], xmm3
sub edx, 0x40
jne 0x416f0f
push 0x4e0
lea edx, [ebp + 0x4ac8]
push edx
lea ecx, [esi + 0x30518]
push ecx
call fcn.0048a330
add esp, 0xc
movups xmm0, xmmword [ebp + 0x4fa8]
movups xmmword [esi + 0x311a8], xmm0
movups xmm0, xmmword [ebp + 0x4fb8]
movups xmmword [esi + 0x311b8], xmm0
movups xmm0, xmmword [ebp + 0x4fc8]
movups xmmword [esi + 0x311c8], xmm0
movups xmm1, xmmword [ebp + 0x4fd8]
movups xmmword [esi + 0x311d8], xmm1
movups xmm2, xmmword [ebp + 0x4fe8]
movups xmmword [esi + 0x311e8], xmm2
movups xmm0, xmmword [ebp + 0x4ff8]
movups xmmword [esi + 0x31a28], xmm0
movups xmm0, xmmword [ebp + 0x5008]
movups xmmword [esi + 0x31a38], xmm0
movups xmm0, xmmword [ebp + 0x5018]
movups xmmword [esi + 0x31a48], xmm0
movups xmm0, xmmword [ebp + 0x5028]
movups xmmword [esi + 0x31a58], xmm0
movups xmm0, xmmword [ebp + 0x5038]
movups xmmword [esi + 0x31a68], xmm0
movups xmm0, xmmword [ebp + 0x5048]
movups xmmword [esi + 0x31a78], xmm0
movq xmm0, qword [ebp + 0x5058]
lea edi, [esp + 0x20]
movq qword [esi + 0x31ad4], xmm0
mov edx, dword [ebp + 0x5060]
mov dword [esi + 0x31ac8], edx
mov ecx, dword [ebp + 0x5064]
mov dword [esi + 0x31ad0], ecx
push edi
push dword [ebp]
call fcn.0041bec0
add esp, 8
test eax, eax
jne 0x4170e3
mov edi, dword [esp + 0x2c]
xor edx, edx
cmp edi, 1
cmovne edi, edx
mov dword [esi + 0x31ab0], edi
cmp dword [esp + 0x2c], 3
je 0x41706e
mov dword [esi + 0x31aac], 2
jmp 0x417078
mov dword [esi + 0x31aac], 1
test byte [esp + 0x38], 1
je 0x41708b
mov dword [esi + 0x31acc], 1
jmp 0x417095
mov dword [esi + 0x31acc], 0
mov edx, dword [esp + 0x3c]
mov dword [esi + 0x31abc], edx
mov ecx, dword [esp + 0x28]
mov dword [esi + 0x31ac4], ecx
mov ebp, dword [esp + 0x40]
mov dword [esi + 0x31ac0], ebp
test edi, edi
je 0x4170d5
mov edx, dword [esp + 0x30]
and edx, 2
shr edx, 1
mov dword [esi + 0x31ab4], edx
mov ecx, dword [esp + 0x30]
and ecx, 1
mov dword [esi + 0x31ab8], ecx
jmp 0x4170e3
xor edx, edx
mov dword [esi + 0x31ab4], edx
mov dword [esi + 0x31ab8], edx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x417103
mov eax, ebx
add esp, 0x7c
pop ebp
pop ebx
pop edi
pop esi
ret
call fcn.00497ce0
mov edi, ebx
shr edi, 1
je 0x4171e6
mov ecx, dword [esp + 0x9c]
xor esi, esi
mov eax, dword [edx + esi*8]
mov dword [ecx + esi*8], eax
mov eax, dword [edx + esi*8 + 4]
mov dword [ecx + esi*8 + 4], eax
inc esi
cmp esi, edi
jb 0x41711b
lea esi, [esi + esi + 1]
lea ecx, [esi - 1]
cmp ecx, ebx
jae 0x416e34
mov ecx, dword [esp + 0x9c]
mov edx, dword [edx + esi*4 - 4]
mov dword [ecx + esi*4 - 4], edx
jmp 0x416e34
mov esi, ecx
shr esi, 1
mov dword [esp], esi
test esi, esi
jle 0x416e34
shr ecx, 2
je 0x4171df
xor edi, edi
mov dword [esp + 4], ebx
xor esi, esi
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
mov ebp, dword [esi + edx]
mov dword [eax + edi*8], ebp
mov ebp, dword [esi + edx + 4]
mov dword [ebx + edi*8], ebp
mov ebp, dword [esi + edx + 8]
mov dword [eax + edi*8 + 4], ebp
mov ebp, dword [esi + edx + 0xc]
add esi, 0x10
mov dword [ebx + edi*8 + 4], ebp
inc edi
cmp edi, ecx
jb 0x41717f
mov ebx, dword [esp + 4]
lea ecx, [edi + edi + 1]
mov ebp, dword [esp + 8]
lea esi, [ecx - 1]
cmp esi, dword [esp]
jae 0x416e34
mov edi, dword [esp + 0x9c]
mov esi, dword [edx + ecx*8 - 8]
mov dword [edi + ecx*4 - 4], esi
mov esi, dword [esp + 0xa0]
mov edx, dword [edx + ecx*8 - 4]
mov dword [esi + ecx*4 - 4], edx
jmp 0x416e34
mov ecx, 1
jmp 0x4171b0
mov esi, 1
jmp 0x417132
mov ecx, 1
jmp 0x416df5
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x417103
jmp 0x416c11
push ebx
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x1c]
push edx
push dword [ebp]
call fcn.0041c7c0
push edi
push esi
push 0
push dword [ebp]
call fcn.004198b0
add esp, 0x20
jmp 0x416cde