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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov eax, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, ecx
mov edi, edx
mov dword [esp + 0x24], edx
je 0x1019161c
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
lea eax, [esp + 0x40]
push ebx
mov dword [esp + 0xc], ecx
push ecx
push eax
call fcn.101589c0
add esp, 0xc
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, eax
xor edx, 2
or edx, ecx
jne 0x101916b3
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
test ebx, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
je 0x10191814
setns al
js 0x10191887
mov byte [esp + 0x18], al
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x101915f5
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10191608
mov dword [edi], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x10191819
movzx eax, byte [esp + 0x18]
push ebx
push eax
call fcn.1001a7e0
add esp, 8
jmp 0x10191893
mov edx, dword [eax]
mov ebx, dword [eax + 8]
lea ecx, [esp + 0x40]
mov dword [esp + 8], edx
push 0x200000
push ebx
call fcn.10158c30
add esp, 8
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, eax
xor edx, 2
or edx, ecx
jne 0x101916b3
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
test ebx, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
je 0x1019181b
setns al
js 0x1019188e
mov byte [esp + 0x18], al
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x1019168c
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1019169f
mov dword [edi], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x10191820
movzx eax, byte [esp + 0x18]
push ebx
push eax
call fcn.1001a7e0
add esp, 8
jmp 0x10191893
mov edx, dword [esp + 0x48]
movsd xmm1, qword [esp + 0x69]
mov ebx, dword [ebp + 8]
movsd xmm0, qword [esp + 0x58]
mov edi, dword [esp + 0x84]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x4c]
movsd qword [esp + 0x28], xmm1
movsd xmm1, qword [esp + 0x71]
movsd xmm2, qword [ebx + 8]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x50]
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [esi + 0x50], xmm2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x54]
movsd qword [esp + 0x37], xmm1
movsd xmm1, qword [esp + 0x2b]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x61]
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [esp + 0x33]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x64]
movsd qword [esp + 0x90], xmm1
movsd xmm1, qword [ebx]
movsd xmm2, qword [esp + 0x90]
mov dword [esp + 0x1f], edx
movzx edx, word [esp + 0x28]
mov ebx, dword [esp + 0x1f]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esp + 0x88]
mov word [esp + 0x14], dx
mov edx, dword [esp + 0x3b]
mov dword [esi + 0x24], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x98], edx
movzx edx, byte [esp + 0x60]
mov dword [esi + 0x21], ebx
movzx ebx, word [esp + 0x14]
mov byte [esp + 7], dl
movzx edx, byte [esp + 0x2a]
mov word [esi + 0x29], bx
mov byte [esp + 0x16], dl
movzx edx, byte [esp + 0x68]
movzx ebx, byte [esp + 0x16]
mov byte [esp + 6], dl
mov edx, dword [esp + 0x80]
mov byte [esi + 0x2b], bl
mov ebx, dword [esp + 0x98]
movsd qword [esi + 0x34], xmm2
movsd qword [esi + 0x2c], xmm1
mov dword [esi + 0x3c], ebx
mov dword [esi], eax
mov eax, dword [esp + 8]
mov dword [esi + 4], ecx
mov ebx, dword [esp + 0x18]
movzx ecx, byte [esp + 7]
mov ch, byte [esp + 6]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ebx
movlps qword [esi + 0x18], xmm0
mov byte [esi + 0x20], cl
mov byte [esi + 0x28], ch
mov dword [esi + 0x40], edx
mov dword [esi + 0x44], edi
mov dword [esi + 0x58], edx
mov edx, dword [esp + 0x24]
movzx ecx, byte [ebp + 0xc]
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], edx
mov byte [esi + 0x64], cl
jmp 0x1019187f
mov edi, 1
jmp 0x10191820
mov edi, 1
push ebx
push dword [esp + 0xc]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 8]
mov dword [esi + 8], edx
mov edx, dword [esp + 0xc]
cmp dword [ecx + 4], 0
movzx eax, byte [ecx + 0xc]
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov byte [esi + 0x20], al
mov byte [esi + 0x28], 2
mov dword [esi + 4], 0
mov dword [esi], 2
je 0x1019187f
mov eax, dword [0x1035648c]
push dword [esp + 8]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1001a7a0
jmp 0x10191893
call fcn.1001a7a0
ud2