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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x3d0
mov dword [esp + 0x4c], ecx
lea ebx, [esp + 0xd8]
mov ecx, ebx
call fcn.0041228c
add dword [ebx], 1
adc dword [ebx + 4], 0
push ebx
push ebx
call fcn.0040506d
add esp, 8
movdqu xmm0, xmmword [ebx]
pshufd xmm1, xmm0, 0xee
movd eax, xmm1
mov edi, 0x76d06
mul edi
mov dword [esp + 0x2c], eax
mov ecx, edx
pshufd xmm1, xmm0, 0xff
movd eax, xmm1
mul edi
mov esi, edx
xor edx, edx
add eax, ecx
mov dword [esp + 0x20], eax
pshufd xmm0, xmm0, 0x55
adc esi, edx
movd eax, xmm0
mul edi
mov edi, edx
mov ecx, eax
mov eax, 0x76d06
mul dword [ebx]
mov dword [esp + 0x50], eax
add edx, ecx
mov ecx, edx
mov dword [esp + 0x30], edx
mov eax, 0
adc edi, eax
mov eax, 0x76d06
mul dword [ebx + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 4], edx
mov ebx, edi
shr ebx, 0x13
mov eax, 0x76d06
lea edx, [esp + 0xd8]
mul dword [edx + 0x14]
shld edi, ecx, 0xd
mov dword [esp + 0x14], edi
add eax, dword [esp + 4]
mov dword [esp + 8], eax
mov eax, 0
adc edx, eax
mov edi, edx
mov eax, 0x76d06
lea ecx, [esp + 0xd8]
mul dword [ecx + 0x18]
mov dword [esp + 4], edx
mov dword [esp + 0x28], eax
mov eax, 0x76d06
mul dword [ecx + 0x1c]
mov ecx, edx
add eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov eax, 0
adc ecx, eax
mov eax, 0x76d06
lea edx, [esp + 0xd8]
mul dword [edx + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 0x24], eax
mov eax, 0x76d06
lea edx, [esp + 0xd8]
mul dword [edx + 0x24]
add eax, dword [esp + 4]
mov dword [esp + 0xc], eax
mov eax, 0
adc edx, eax
mov dword [esp + 4], edx
mov eax, 0x7ffff
and dword [esp + 0x30], eax
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x2c]
adc ebx, dword [esp + 0x20]
mov eax, 0
adc esi, eax
setb al
movzx eax, al
shld eax, esi, 0xd
shld esi, ebx, 0xd
add esi, dword [esp + 0x18]
adc eax, dword [esp + 8]
movd xmm0, esi
mov esi, 0
adc edi, esi
movd xmm1, ebx
movd xmm2, eax
setb bl
movzx esi, bl
shld esi, edi, 0xd
shld edi, eax, 0xd
movd xmm3, edx
add edi, dword [esp + 0x28]
adc esi, dword [esp + 0x1c]
mov ebx, 0
adc ecx, ebx
setb al
movzx eax, al
shld eax, ecx, 0xd
shld ecx, esi, 0xd
add ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
adc edx, eax
movd xmm4, ecx
movd xmm6, esi
movd xmm5, edi
mov ecx, dword [esp + 4]
adc ecx, ebx
mov eax, edx
movd xmm7, edx
setb dl
shrd eax, ecx, 0x13
mov esi, ecx
movzx ecx, dl
shld ecx, esi, 0xd
mov esi, 0x13
mul esi
lea esi, [ecx + ecx*8]
lea ecx, [ecx + esi*2]
add edx, ecx
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x30]
punpckldq xmm0, xmm2
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm0
movdqa xmm0, xmmword [0x430240]
pand xmm3, xmm0
lea esi, [esp + 0x60]
movdqu xmmword [esi + 8], xmm3
mov dword [esi], eax
mov dword [esi + 4], edx
punpckldq xmm4, xmm7
punpckldq xmm5, xmm6
punpcklqdq xmm5, xmm4
pand xmm5, xmm0
movdqu xmmword [esi + 0x18], xmm5
lea edx, [esp + 0x2e0]
xor eax, eax
mov dword [edx + 0x24], eax
mov dword [edx + 0x20], eax
pxor xmm0, xmm0
movdqa xmmword [edx + 0x10], xmm0
movdqa xmmword [edx], xmm0
mov ecx, esi
push esi
call fcn.00406863
add esp, 4
lea edi, [esp + 0xb0]
mov ecx, edi
mov edx, esi
call fcn.0040521c
lea ebx, [esp + 0x240]
mov ecx, ebx
mov edx, esi
push edi
call fcn.004059be
add esp, 4
mov eax, dword [esi + 0x20]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
add ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esi + 0x24]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x28], eax
adc ecx, eax
mov dword [esp + 0x20], ecx
mov ebx, edi
movdqu xmm0, xmmword [edi]
pshufd xmm1, xmm0, 0xee
movd eax, xmm1
mov esi, 0x76d06
mul esi
mov dword [esp + 0xc], eax
mov ecx, edx
pshufd xmm1, xmm0, 0xff
movd eax, xmm1
mul esi
mov edi, 0x76d06
mov esi, edx
add eax, ecx
mov dword [esp + 0x14], eax
pshufd xmm0, xmm0, 0x55
mov eax, 0
adc esi, eax
movd eax, xmm0
mul edi
mov edi, edx
mov ecx, eax
mov eax, 0x76d06
mul dword [ebx]
mov dword [esp + 0x1c], eax
add edx, ecx
mov ecx, edx
mov dword [esp + 0x50], edx
mov eax, 0
adc edi, eax
mov eax, 0x76d06
mul dword [ebx + 0x10]
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], edx
mov ebx, edi
shr ebx, 0x13
mov eax, 0x76d06
lea edx, [esp + 0xb0]
mul dword [edx + 0x14]
shld edi, ecx, 0xd
mov dword [esp + 4], edi
add eax, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov eax, 0
adc edx, eax
mov dword [esp + 0x30], edx
mov eax, 0x76d06
lea ecx, [esp + 0xb0]
mul dword [ecx + 0x18]
mov dword [esp + 8], edx
mov dword [esp + 0x18], eax
mov eax, 0x76d06
mul dword [ecx + 0x1c]
mov edi, edx
add eax, dword [esp + 8]
mov dword [esp + 0x48], eax
mov eax, 0
adc edi, eax
mov eax, 0x76d06
mul dword [ecx + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov eax, 0x76d06
mul dword [ecx + 0x24]
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x10]
mov eax, 0
adc ecx, eax
mov dword [esp + 0x10], ecx
mov eax, 0x7ffff
and dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
add dword [esp + 4], eax
adc ebx, dword [esp + 0x14]
mov dword [esp + 0xc], ebx
mov eax, 0
adc esi, eax
setb al
movzx eax, al
shld eax, esi, 0xd
shld esi, ebx, 0xd
add esi, dword [esp + 0x44]
adc eax, dword [esp + 0x40]
movd xmm0, esi
mov ecx, dword [esp + 0x30]
mov esi, 0
adc ecx, esi
setb bl
movzx esi, bl
shld esi, ecx, 0xd
movd xmm1, eax
shld ecx, eax, 0xd
add ecx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
adc esi, dword [esp + 0x48]
mov ebx, 0
adc edi, ebx
setb al
movzx eax, al
shld eax, edi, 0xd
movd xmm3, dword [esp + 0xc]
shld edi, esi, 0xd
add edi, dword [esp + 8]
adc edx, eax
mov ecx, dword [esp + 0x10]
adc ecx, ebx
movd xmm2, dword [esp + 4]
movd xmm5, edi
movd xmm6, esi
movd xmm4, edx
punpckldq xmm5, xmm4
setb al
mov edi, ecx
shrd edx, ecx, 0x13
movd xmm4, dword [esp + 0x30]
movzx ecx, al
shld ecx, edi, 0xd
mov eax, edx
mov edx, 0x13
mul edx
lea esi, [ecx + ecx*8]
lea ecx, [ecx + esi*2]
add edx, ecx
add eax, dword [esp + 0x1c]
adc edx, dword [esp + 0x50]
punpckldq xmm4, xmm6
punpcklqdq xmm4, xmm5
movdqa xmm6, xmmword [0x430240]
pand xmm4, xmm6
pshufd xmm5, xmm4, 0xee
movd ecx, xmm5
add ecx, dword [esp + 0x24]
pshufd xmm5, xmm4, 0xff
movd edi, xmm5
adc edi, dword [esp + 0x20]
punpckldq xmm0, xmm1
punpckldq xmm2, xmm3
punpcklqdq xmm2, xmm0
pand xmm2, xmm6
lea esi, [esp + 0xb0]
movdqu xmmword [esi + 8], xmm2
movd xmm0, eax
mov dword [esi], eax
lea eax, [esp + 0x240]
movdqu xmm1, xmmword [eax]
movdqu xmm3, xmmword [eax + 0x10]
lea eax, [esp + 0x60]
movdqu xmm5, xmmword [eax]
movdqu xmm6, xmmword [eax + 0x10]
mov dword [esi + 4], edx
mov eax, esi
movdqa xmmword [esp + 0x50], xmm5
paddq xmm1, xmm5
movd xmm5, edx
punpcklqdq xmm5, xmm0
shufps xmm5, xmm2, 0x42
paddq xmm5, xmm1
lea esi, [esp + 0x3a0]
movdqu xmmword [esi], xmm5
movdqa xmmword [esp + 0x30], xmm6
paddq xmm3, xmm6
shufps xmm2, xmm4, 0x4e
paddq xmm2, xmm3
movdqu xmmword [esi + 0x10], xmm2
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edi
movups xmmword [eax + 0x18], xmm4
lea ebx, [esp + 0x2e0]
mov ecx, ebx
mov edx, esi
push esi
call fcn.004059be
add esp, 4
lea edi, [esp + 0x1a0]
mov ecx, edi
mov edx, esi
push ebx
call fcn.004059be
add esp, 4
lea ebx, [esp + 0x268]
mov ecx, ebx
mov edx, edi
call fcn.0040521c
mov ecx, ebx
mov edx, ebx
call fcn.0040521c
lea esi, [esp + 0x150]
mov ecx, esi
mov edx, edi
push ebx
call fcn.004059be
add esp, 4
lea edi, [esp + 0x178]
mov ecx, edi
mov edx, esi
call fcn.0040521c
mov ecx, edi
mov edx, edi
call fcn.0040521c
mov ecx, edi
mov edx, edi
call fcn.0040521c
mov ecx, edi
mov edx, edi
call fcn.0040521c
lea ebx, [esp + 0x88]
mov ecx, ebx
mov edx, esi
push edi
call fcn.004059be
add esp, 4
mov esi, 2
mov ecx, ebx
mov edx, ebx
call fcn.0040521c
dec esi
jne 0x410b71
lea ecx, [esp + 0x88]
mov edx, ecx
mov esi, ecx
lea eax, [esp + 0x1a0]
push eax
call fcn.004059be
add esp, 4
mov ebx, 0xa
lea edi, [esp + 0x128]
mov ecx, 0xa
mov eax, esi
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov ecx, esi
mov edx, esi
call fcn.0040521c
dec ebx
jne 0x410baf
lea esi, [esp + 0x88]
mov ecx, esi
mov edx, esi
lea eax, [esp + 0x128]
push eax
call fcn.004059be
add esp, 4
mov edi, 0xa
mov ecx, esi
mov edx, esi
call fcn.0040521c
dec edi
jne 0x410bdb
lea ebx, [esp + 0x88]
mov ecx, ebx
mov edx, ebx
lea eax, [esp + 0x128]
push eax
call fcn.004059be
add esp, 4
lea edi, [esp + 0x100]
mov ecx, 0xa
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, 0x1e
mov ecx, ebx
mov edx, ebx
call fcn.0040521c
dec esi
jne 0x410c17
lea ebx, [esp + 0x88]
mov ecx, ebx
mov edx, ebx
lea edi, [esp + 0x100]
push edi
call fcn.004059be
add esp, 4
mov ecx, 0xa
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, 0x3c
mov ecx, ebx
mov edx, ebx
call fcn.0040521c
dec esi
jne 0x410c4c
lea ebx, [esp + 0x88]
mov ecx, ebx
mov edx, ebx
lea edi, [esp + 0x100]
push edi
call fcn.004059be
add esp, 4
mov ecx, 0xa
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, pe_nt_image_headers32
mov ecx, ebx
mov edx, ebx
call fcn.0040521c
dec esi
jne 0x410c81
lea esi, [esp + 0x88]
mov ecx, esi
mov edx, esi
lea eax, [esp + 0x100]
push eax
call fcn.004059be
add esp, 4
mov edi, 0xa
mov ecx, esi
mov edx, esi
call fcn.0040521c
dec edi
jne 0x410cad
lea esi, [esp + 0x88]
mov ecx, esi
mov edx, esi
lea eax, [esp + 0x128]
push eax
call fcn.004059be
add esp, 4
mov edi, 3
mov ecx, esi
mov edx, esi
call fcn.0040521c
dec edi
jne 0x410cd9
mov ecx, esi
mov edx, esi
lea eax, [esp + 0x1a0]
push eax
call fcn.004059be
add esp, 4
mov ecx, esi
mov edx, esi
call fcn.0040521c
lea edi, [esp + 0x380]
push esi
push edi
call fcn.00404c87
add esp, 8
movzx ebx, byte [edi + 1]
xor edi, edi
lea edx, [esp + 0x2e0]
mov dword [edx + 0x24], edi
mov dword [edx + 0x20], edi
pxor xmm0, xmm0
movdqa xmmword [edx + 0x10], xmm0
movdqa xmmword [edx], xmm0
lea ecx, [esp + 0x150]
lea eax, [esp + 0x60]
push eax
call fcn.00406863
add esp, 4
and ebx, 1
neg ebx
mov ecx, 0
sbb ecx, ecx
lea eax, [esp + 0x150]
mov eax, dword [eax + 0x24]
mov edx, dword [esp + 0x28]
xor eax, edx
and eax, ecx
movd xmm0, ecx
xor eax, edx
lea ecx, [esp + 0x150]
movdqu xmm1, xmmword [ecx]
movdqu xmm2, xmmword [ecx + 0x10]
mov ecx, dword [ecx + 0x20]
mov edx, dword [esp + 0x2c]
xor ecx, edx
and ecx, ebx
xor ecx, edx
movd xmm3, ebx
punpckldq xmm3, xmm0
pshufd xmm0, xmm3, 0x44
movdqa xmm3, xmm0
pandn xmm3, xmmword [esp + 0x50]
pand xmm1, xmm0
por xmm1, xmm3
movdqu xmmword [esp + 0x60], xmm1
pand xmm2, xmm0
pandn xmm0, xmmword [esp + 0x30]
por xmm0, xmm2
movdqu xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
and ebx, 0x76d06
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
lea eax, [esp + 0xb0]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], edi
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
lea ecx, [esp + 0x60]
mov edx, ecx
push eax
call fcn.00406863
add esp, 4
lea ebx, [esp + 0x2e0]
mov dword [ebx + 4], edi
mov dword [ebx], 1
mov dword [ebx + 0xc], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x24], edi
mov dword [ebx + 0x20], edi
mov eax, dword [esp + 0x60]
add eax, 1
adc edi, dword [esp + 0x64]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], edi
movups xmm0, xmmword [esp + 0x68]
movups xmmword [esp + 0x1a8], xmm0
movups xmm0, xmmword [esp + 0x78]
movups xmmword [esp + 0x1b8], xmm0
lea ecx, [esp + 0x178]
lea edx, [esp + 0x60]
push ebx
call fcn.00406863
add esp, 4
lea edi, [esp + 0x1a0]
push edi
lea ebx, [esp + 0x26c]
push ebx
call fcn.0040506d
add esp, 8
mov ecx, esi
lea edx, [esp + 0x178]
push ebx
call fcn.004059be
add esp, 4
push esi
mov esi, edi
mov ebx, dword [esp + 0x50]
push ebx
call fcn.00404c87
add esp, 8
mov al, byte [ebp + 8]
or byte [ebx + 0x1f], al
push ebx
push edi
call fcn.004069a3
add esp, 8
test eax, eax
jne 0x410f67
lea eax, [esp + 0x268]
mov ecx, 0xa
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x290]
lea esi, [esp + 0x1c8]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x2b8]
lea esi, [esp + 0x1f0]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x2e0]
mov ecx, esi
mov edi, eax
mov edx, eax
call fcn.00407a4d
push esi
push edi
call fcn.004070c8
add esp, 8
mov ecx, esi
mov edx, edi
call fcn.00407a4d
push esi
push edi
call fcn.004070c8
add esp, 8
mov ecx, esi
mov edx, edi
call fcn.00407a4d
push esi
lea esi, [esp + 0x1a4]
push esi
call fcn.00407109
add esp, 8
push esi
push ebx
call fcn.004071db
add esp, 8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort