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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1e0
mov esi, esp
mov dword [esi + 0x1c8], ebp
mov dword [esi + 0x1cc], esp
mov dword [esi + 0x1d8], 0xffffffff
mov dword [esi + 0x1d4], 0x1015e870
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword fs:[0]
mov dword [esi + 0x1d0], eax
lea eax, [esi + 0x1d0]
mov dword fs:[0], eax
movzx eax, word [ecx + 0x6c]
mov word [esi + 0x100], ax
movzx eax, byte [ecx + 0x6e]
mov byte [esi + 0x102], 1
mov byte [esi + 0x103], al
mov eax, dword [ecx + 0x50]
lea ecx, [esi + 0xf8]
mov dword [esi + 0xf8], eax
lea eax, [esi + 0x150]
mov dword [esi + 0xfc], 1
push ecx
push eax
call fcn.10157090
add esp, 8
mov edi, dword [esi + 0x150]
mov eax, dword [esi + 0x154]
mov ecx, dword [esi + 0x158]
cmp edi, 2
jne 0x1015e27e
mov dword [ebx + 4], eax
mov eax, ebx
mov dword [ebx + 8], ecx
mov dword [ebx], 0
jmp 0x1015e468
mov dword [esi + 8], eax
lea eax, [esi + 0x15c]
mov ebx, ecx
lea ecx, [esi + 0x8c]
push 0x6c
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x9c]
movsd xmm0, qword [esi + 0x8c]
movsd xmm1, qword [esi + 0x94]
mov dword [esi + 0x40], eax
lea eax, [esi + 0xa0]
movsd qword [esi + 0x38], xmm1
movsd qword [esi + 0x30], xmm0
push 0x58
push eax
lea eax, [esi + 0xf8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x24], edi
mov dword [esi + 0x2c], ebx
mov byte [esi + 7], 1
mov dword [esi + 0x1d8], 0
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0x54]
push eax
push ecx
call fcn.1015f400
add esp, 8
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edx
lock inc dword [eax]
jle 0x1015e47d
mov eax, dword [esi + 0xc]
mov byte [esi + 6], 1
mov dword [esi + 0x1d8], 1
mov dword [esi + 8], eax
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0xc]
add eax, 0x60
mov dword [esi + 0x1c], eax
push eax
call fcn.1014ea50
add esp, 4
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], edx
mov byte [esi + 6], 1
push dword [esi + 0x1c]
call fcn.1014ea50
add esp, 4
movsd xmm1, qword [esi + 0x34]
movsd xmm0, qword [esi + 0x3c]
movsd xmm2, qword [esi + 0x24]
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], edx
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x2c]
movsd qword [esi + 0x80], xmm0
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push 0x58
lea eax, [esi + 0xf8]
push eax
lea edi, [esi + 0x150]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp + 0xc]
xorps xmm0, xmm0
xorps xmm1, xmm1
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x1015e3bb
lock inc dword [eax]
jle 0x1015e47d
movsd xmm1, qword [ecx + 0x40]
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x1015e3d0
lock inc dword [eax]
jle 0x1015e47d
movsd xmm0, qword [ecx + 0x48]
movups xmm2, xmmword [ecx + 0x10]
movups xmm3, xmmword [ecx + 0x58]
movzx eax, word [ecx + 0x6f]
lea ebx, [esi + 0x8c]
mov byte [esi + 6], 0
lea ecx, [esi + 0x68]
lea edx, [esi + 0x50]
movlhps xmm2, xmm3
movups xmmword [esi + 0x8c], xmm2
movlps qword [esi + 0x9c], xmm1
movlps qword [esi + 0xa4], xmm0
mov word [esi + 0xb8], ax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xac], 0
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0xb4], eax
lea eax, [esi + 0x44]
push ebx
push eax
push dword [esi + 8]
push edi
push ecx
push edx
call fcn.10157620
add esp, 0x18
mov ecx, dword [esi + 0x60]
mov eax, dword [ebp + 8]
movsd xmm0, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
mov edx, dword [esi + 0x64]
mov edi, dword [esi + 8]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esi + 0x10]
movsd qword [eax + 0x14], xmm1
movsd qword [eax + 0xc], xmm0
mov dword [eax], edx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x1d0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
ud2