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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x150
mov esi, esp
mov dword [esi + 0x138], ebp
mov dword [esi + 0x13c], esp
mov dword [esi + 0x148], 0xffffffff
mov dword [esi + 0x144], 0x10159fa0
mov edi, dword [ebp + 8]
lea eax, [esi + 0x140]
mov ecx, dword fs:[0]
mov dword [esi + 0x140], ecx
mov dword fs:[0], eax
call fcn.101501d0
mov ecx, edi
mov dword [esi + 0x18], edx
mov edi, eax
mov dword [esi + 0x14], edx
mov eax, dword [ecx + 0x20]
cmp eax, 0x3b9aca00
jne 0x1015811d
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0xa
mov dword [esi + 4], 0
jmp 0x1015812c
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [esi + 0xc], eax
mov dword [esi + 8], edx
mov dword [esi + 4], ecx
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 4
mov dword [esi + 0x1c], edi
mov dword [esi + 0x2c], 0
call fcn.10190440
test byte [eax], 1
je 0x10158168
movdqu xmm0, xmmword [eax + 8]
mov ebx, eax
add ebx, 8
jmp 0x101581cc
mov dword [esi + 0x10], eax
lea eax, [esi + 0x38]
mov dword [esi], edi
mov dword [esi + 0x148], 2
push eax
call fcn.1019e1e0
add esp, 4
mov edi, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x3c]
mov dword [ebx + 4], 0
mov dword [ebx], 1
mov dword [ebx + 8], edi
movd xmm0, edi
mov edi, dword [esi]
movd xmm1, edx
movd xmm2, ecx
movd xmm3, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], eax
add ebx, 8
punpckldq xmm0, xmm1
punpckldq xmm2, xmm3
punpcklqdq xmm0, xmm2
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
movsd xmm5, qword [0x1020ba50]
movsd xmm4, qword [0x1020ba58]
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [ebx], edx
mov dword [ebx + 4], ecx
mov ecx, dword [ebp + 8]
movsd xmm1, qword [esi + 0x70]
movsd xmm2, qword [esi + 0x78]
mov eax, dword [esi + 0x34]
movsd xmm3, qword [esi + 0x2c]
movsd qword [esi + 0x60], xmm5
movsd qword [esi + 0x68], xmm4
movsd qword [esi + 0x120], xmm2
movsd qword [esi + 0x118], xmm1
mov dword [esi + 0x28], eax
movsd qword [esi + 0x20], xmm3
movsd qword [esi + 0x128], xmm5
movsd qword [esi + 0x130], xmm4
movsd qword [esi + 0x50], xmm1
movsd qword [esi + 0x58], xmm2
mov eax, dword [ecx + 0x28]
lock inc dword [eax]
jle 0x101583ec
mov eax, dword [ecx + 0x30]
movsd xmm4, qword [ecx + 8]
movsd xmm2, qword [ecx + 0x28]
xorps xmm1, xmm1
xorps xmm3, xmm3
test eax, eax
je 0x10158276
lock inc dword [eax]
jle 0x101583ec
movsd xmm3, qword [ecx + 0x30]
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x1015828b
lock inc dword [eax]
jle 0x101583ec
movsd xmm1, qword [ecx + 0x38]
movsd xmm5, qword [esi + 0x68]
movsd xmm6, qword [esi + 0x52]
mov eax, dword [esi + 0x28]
movsd qword [esi + 0xb8], xmm5
movsd xmm5, qword [esi + 0x62]
movsd qword [esi + 0xa2], xmm6
movsd qword [esi + 0xb2], xmm5
movsd xmm5, qword [esi + 0x5a]
movsd qword [esi + 0xaa], xmm5
movsd xmm5, qword [esi + 0x4a]
movsd qword [esi + 0x9a], xmm5
mov dword [esi + 0xe0], eax
movsd xmm5, qword [esi + 0x20]
mov eax, dword [esi + 8]
movsd qword [esi + 0xd8], xmm5
mov dword [esi + 0x70], 1
mov dword [esi + 0x74], 1
movlps qword [esi + 0x78], xmm4
mov dword [esi + 0x80], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x88], eax
mov eax, dword [ebp + 0xc]
movlps qword [esi + 0x90], xmm2
mov byte [esi + 0x98], 0
mov byte [esi + 0x99], 0
movdqu xmmword [esi + 0xc0], xmm0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xd4], edi
mov dword [esi + 0xe4], 0
mov byte [esi + 0xe8], 0
movlps qword [esi + 0xf0], xmm3
movlps qword [esi + 0xf8], xmm1
mov dword [esi + 0x100], 0
mov dword [esi + 0x104], eax
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x110], 0
movzx eax, byte [0x10284b49]
push 8
push 0xa8
call fcn.10013770
add esp, 8
test eax, eax
je 0x101583d3
lea ecx, [esi + 0x70]
push 0xa8
push ecx
push eax
mov edi, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x140]
mov edx, dword [esi + 0x14]
mov dword fs:[0], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x148], 1
push 0xa8
push 8
call fcn.101cc679
add esp, 8
ud2