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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x190
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x1009ac77
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1009b6e5
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0xa
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1009b6e5
mov word [eax + 8], 0x6c6c
mov dword [eax + 4], 0x65687372
mov dword [eax], 0x65776f70
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0xa
mov dword [esp + 0x48], 0xa
mov byte [esp + 0x4c], 0
mov dword [esp + 0x70], 4
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
mov word [esp + 0x5c], 0
mov byte [esp + 0x6c], 2
mov dword [esp + 0x7c], 0
mov word [esp + 0x80], 0
mov dword [esp + 0x28], 5
mov dword [esp + 0x30], 5
mov dword [esp + 0x38], 5
lea esi, [esp + 0x28]
push 8
push 0x10334f76
push esi
call fcn.10178a30
add esp, 0xc
push 0x29
push 0x10334f7e
push esi
call fcn.10178a30
add esp, 0xc
lea edi, [esp + 0x138]
push esi
push edi
call fcn.1016cf50
add esp, 8
cmp dword [esp + 0x138], 0
je 0x1009b6f3
mov eax, dword [esp + 0x150]
movq xmm0, qword [esp + 0x148]
movsd xmm2, qword [esp + 0x138]
movsd xmm1, qword [esp + 0x140]
mov dword [esp + 0xe0], eax
movq qword [esp + 0xd8], xmm0
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm2
lea esi, [esp + 0x28]
mov ecx, esi
call fcn.100985a0
mov eax, dword [ebp + 8]
cmp dword [esp + 0xe0], 0
je 0x1009ae10
mov esi, eax
mov dword [eax], 4
mov dword [eax + 4], 0
mov dword [eax + 8], 0
cmp dword [esp + 0xcc], 0
je 0x1009ade7
push dword [esp + 0xc8]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xd8], 0
je 0x1009ae06
push dword [esp + 0xd4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [esp + 0xd0]
push dword [esp + 0xcc]
push esi
call fcn.1002ad90
add esp, 0xc
cmp dword [esp + 0x28], 0
jne 0x1009b728
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
call fcn.10098b30
mov edi, edx
push 4
push str._r_n_r_n
push edx
push eax
push esi
call fcn.1002b3c0
add esp, 0x14
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
movq xmm0, qword [esp + 0x60]
movsd qword [esp + 0x168], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x160], xmm2
movsd xmm2, qword [esp + 0x40]
movq qword [esp + 0x170], xmm0
movsd qword [esp + 0x158], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x150], xmm2
movsd xmm2, qword [esp + 0x28]
movsd qword [esp + 0x148], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x138], xmm2
movsd qword [esp + 0x140], xmm1
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], edi
mov word [esp + 0x180], 1
lea ecx, [esp + 0x28]
lea edx, [esp + 0x138]
call fcn.10098180
mov edi, dword [esp + 0x28]
test edi, edi
je 0x1009b088
movq xmm0, qword [esp + 0x2c]
mov eax, dword [0x1044f00c]
movdqa xmmword [esp + 0x90], xmm0
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x1009af3a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1009b753
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0x30
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1009b753
movdqa xmm0, xmmword [esp + 0x90]
mov dword [eax], edi
mov dword [esp + 8], eax
lea edi, [esp + 0x28]
lea esi, [esp + 0x138]
mov ecx, 0x14
mov ebx, 0x10
movq qword [eax + 4], xmm0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 1
rep movsd dword es:[edi], dword [esi]
mov esi, 1
jmp 0x1009afbe
mov eax, dword [esp + 8]
movdqa xmm0, xmmword [esp + 0x90]
inc esi
mov dword [eax + ebx - 4], edi
movq qword [eax + ebx], xmm0
mov dword [esp + 0x14], esi
add ebx, 0xc
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x28]
call fcn.10098180
mov edi, dword [esp + 0xe8]
test edi, edi
je 0x1009b005
movsd xmm0, qword [esp + 0xec]
cmp esi, dword [esp + 0x10]
movaps xmmword [esp + 0x90], xmm0
jne 0x1009afa0
lea ecx, [esp + 0xc]
mov edx, esi
call fcn.100992e0
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jmp 0x1009afa0
mov esi, dword [esp + 0x14]
movq xmm0, qword [esp + 0xc]
test esi, esi
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0xa8], esi
je 0x1009b0a9
xor ebx, ebx
cmp esi, 0x2492493
setb al
jae 0x1009b761
mov bl, al
imul edi, esi, 0x38
shl ebx, 2
test edi, edi
js 0x1009b761
je 0x1009b634
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x1009b076
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1009b63e
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x1009b0b0
jmp 0x1009b63e
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov eax, 4
xor esi, esi
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x8c], eax
lea eax, [esi + esi*2]
test esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], 0
lea eax, [ecx + eax*4]
mov edi, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x18], eax
je 0x1009b5a9
mov eax, dword [esp + 0x84]
xor esi, esi
jmp 0x1009b134
mov eax, dword [esp + 0xc4]
cmp eax, dword [esp + 0x88]
je 0x1009b5ee
lea edi, [eax + 0xc]
mov dword [esp + 0x14], edi
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x90], ecx
je 0x1009b5a9
mov ebx, dword [eax + 8]
mov dword [esp + 0xc4], edi
mov edi, dword [eax + 4]
test ebx, ebx
je 0x1009b64d
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc0], esi
mov dword [esp + 4], edi
mov esi, dword [eax + 4]
push 1
push 0x10334ffc
push esi
push dword [eax]
lea eax, [esp + 0xf8]
push eax
call fcn.1002b3c0
add esp, 0x14
movsd xmm1, qword [esp + 0x118]
movsd xmm2, qword [esp + 0x110]
movq xmm0, qword [esp + 0x120]
xor edi, edi
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [esp + 0x108]
movsd qword [esp + 0x50], xmm2
movsd xmm2, qword [esp + 0x100]
movq qword [esp + 0x60], xmm0
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0xf8]
movsd qword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0xe8]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], esi
mov word [esp + 0x70], 1
nop dword [eax]
lea ecx, [esp + 0x28]
call fcn.10099530
test eax, eax
je 0x1009b240
mov esi, edx
mov edi, eax
jmp 0x1009b220
test edi, edi
je 0x1009b674
mov ecx, edi
mov edx, esi
call fcn.10098b30
cmp ebx, 1
mov dword [esp + 8], eax
jbe 0x1009b656
mov eax, dword [esp + 0x90]
mov esi, edx
mov edi, dword [eax + 0xc]
push 1
push 0x10334ffc
push edi
push dword [eax + 8]
lea eax, [esp + 0xf8]
push eax
call fcn.1002b3c0
add esp, 0x14
movsd xmm1, qword [esp + 0x118]
movsd xmm2, qword [esp + 0x110]
movq xmm0, qword [esp + 0x120]
xor ebx, ebx
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [esp + 0x108]
movsd qword [esp + 0x50], xmm2
movsd xmm2, qword [esp + 0x100]
movq qword [esp + 0x60], xmm0
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [esp + 0xf8]
movsd qword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0xe8]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], edi
mov word [esp + 0x70], 1
nop word cs:[eax + eax]
nop dword [eax]
lea ecx, [esp + 0x28]
call fcn.10099530
test eax, eax
je 0x1009b340
mov edi, edx
mov ebx, eax
jmp 0x1009b320
test ebx, ebx
je 0x1009b67b
mov ecx, ebx
mov edx, edi
call fcn.10098b30
mov edi, edx
test esi, esi
mov dword [esp + 0xbc], eax
je 0x1009b410
js 0x1009b6cd
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x1009b390
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1009b6b9
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1009b6b9
mov ebx, eax
push esi
push dword [esp + 0xc]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x1044f00c]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], esi
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x1009b3ee
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1009b6a9
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ebx, eax
test eax, eax
jne 0x1009b436
jmp 0x1009b6a9
mov ebx, 1
mov dword [esp + 0xac], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
push esi
push dword [esp + 0xc]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
test edi, edi
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], esi
mov dword [esp + 0x134], esi
je 0x1009b4a0
js 0x1009b6db
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x1009b48b
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1009b699
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov esi, eax
test eax, eax
jne 0x1009b4a5
jmp 0x1009b699
mov esi, 1
push edi
push dword [esp + 0xc0]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], edi
mov dword [esp + 0xf0], edi
push 0x10335030
push 0x10334de4
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.1009a0d0
add esp, 0x18
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x8c]
cmp esi, dword [esp + 0x20]
jne 0x1009b525
lea ecx, [esp + 0x1c]
mov edx, esi
call fcn.10099240
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x58]
imul eax, esi, 0x38
inc esi
test edi, edi
mov dword [esp + 0x8c], ecx
movsd qword [ecx + eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x50]
movsd qword [ecx + eax + 0x28], xmm0
movsd xmm0, qword [esp + 0x48]
movsd qword [ecx + eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [ecx + eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [ecx + eax + 0x10], xmm0
movq xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
movsd qword [ecx + eax + 8], xmm1
movq qword [ecx + eax], xmm0
mov dword [esp + 0x24], esi
je 0x1009b120
push dword [esp + 0x90]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x1009b120
mov ebx, dword [esp + 0x88]
mov ecx, 0xaaaaaaab
mov eax, ebx
sub eax, edi
mul ecx
cmp ebx, edi
je 0x1009b5ee
mov esi, edx
add edi, 4
shr esi, 3
jmp 0x1009b5d6
add edi, 0xc
dec esi
je 0x1009b5ee
cmp dword [edi], 0
je 0x1009b5d0
push dword [edi - 4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x1009b5d0
cmp dword [esp + 0xb8], 0
je 0x1009b60d
push dword [esp + 0x84]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x24]
mov esi, dword [ebp + 8]
movq xmm0, qword [esp + 0x1c]
mov dword [esi + 8], eax
movq qword [esi], xmm0
cmp dword [esp + 0xcc], 0
jne 0x1009add2
jmp 0x1009ade7
mov eax, ebx
test eax, eax
jne 0x1009b0b0
push edi
push ebx
call fcn.1001ac80
add esp, 8
jmp 0x1009b766
mov ecx, 0x10334fec
xor eax, eax
jmp 0x1009b664
mov edi, dword [esp + 4]
mov ecx, 0x10335010
mov eax, 1
push ecx
push eax
push eax
call fcn.100273d0
add esp, 0xc
jmp 0x1009b766
mov eax, 0x10335000
jmp 0x1009b680
mov eax, 0x10335020
push eax
push 0x2b
push 0x10334ec0
mov edi, dword [esp + 0x10]
call fcn.10027330
add esp, 0xc
jmp 0x1009b766
push edi
push 1
call fcn.1001ac80
add esp, 8
jmp 0x1009b766
push esi
push 1
call fcn.1001ac80
add esp, 8
jmp 0x1009b766
push esi
push 1
mov edi, dword [esp + 0xc]
call fcn.1001ac80
add esp, 8
jmp 0x1009b766
mov edi, dword [esp + 4]
call fcn.1001ac40
jmp 0x1009b766
call fcn.1001ac40
jmp 0x1009b766
push 0xa
push 1
call fcn.1001ac80
add esp, 8
ud2
movq xmm0, qword [esp + 0x13c]
movq qword [esp + 0xe8], xmm0
lea edi, [esp + 0xe8]
push 0x10334fc8
push 0x10334ea0
push edi
push 0x2b
push 0x10334e74
call fcn.10027650
add esp, 0x14
jmp 0x1009b766
movq xmm0, qword [esp + 0x2c]
movq qword [esp + 0x138], xmm0
push 0x10334fd8
push 0x10334eb0
push edi
push 0x2b
push 0x10334e74
call fcn.10027650
add esp, 0x14
jmp 0x1009b766
push 0x30
push 4
call fcn.1001ac80
add esp, 8
jmp 0x1009b766
call fcn.1001ac40
ud2