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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov ecx, dword [ebp + 0xc]
call 0x100af4a7
pop eax
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
movdqa xmm0, xmmword [0x10247f20]
lea edi, [esp + 0xd8]
mov dword [esp + 0x130], 1
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], edi
mov eax, dword [ecx + 0x48]
movzx ebx, byte [ecx + 0x4d]
movzx ecx, byte [ecx + 0x4c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x138], eax
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], cl
mov byte [esp + 0x13c], cl
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 4
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 4
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 4
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 4
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 1
movdqu xmmword [esp + 0x120], xmm0
lea ecx, [esp + 0x140]
lea edx, [esp + 0x50]
call fcn.100ea6a0
mov esi, dword [ebp + 8]
cmp dword [esp + 0x140], 0x110015
jne 0x100af652
movdqu xmm0, xmmword [esp + 0x144]
movdqu xmm1, xmmword [esp + 0x154]
movdqu xmm2, xmmword [esp + 0x164]
movdqu xmm3, xmmword [esp + 0x174]
jmp 0x100af73a
mov ebx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b8]
test ebx, ebx
mov dword [esp], eax
mov dword [esp + 8], ecx
je 0x100af699
mov eax, dword [esp]
mov esi, dword [0x1035648c]
lea edi, [eax + 4]
jmp 0x100af686
add edi, 0x24
dec ebx
je 0x100af699
cmp dword [edi], 0
je 0x100af680
push dword [edi - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100af680
cmp dword [esp + 8], 0
je 0x100af6b1
mov eax, dword [0x1035648c]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
movsd xmm7, qword [esp + 0x194]
movsd xmm6, qword [esp + 0x19c]
mov eax, dword [esp + 0x140]
movq xmm5, qword [esp + 0x18c]
movdqu xmm0, xmmword [esp + 0x144]
movdqu xmm1, xmmword [esp + 0x154]
movdqu xmm2, xmmword [esp + 0x164]
movdqu xmm3, xmmword [esp + 0x174]
movq xmm4, qword [esp + 0x184]
mov esi, dword [ebp + 8]
movsd qword [esp + 0x30], xmm7
movsd qword [esp + 0x38], xmm6
movsd xmm7, qword [esp + 0x1a4]
movq xmm6, qword [esp + 0x1ac]
cmp eax, 0x110015
movq qword [esp + 0x28], xmm5
movsd qword [esp + 0x40], xmm7
movq qword [esp + 0x48], xmm6
jne 0x100af7b3
movdqu xmmword [esi + 8], xmm0
movdqu xmmword [esi + 0x18], xmm1
movdqu xmmword [esi + 0x28], xmm2
movdqu xmmword [esi + 0x38], xmm3
mov dword [esi], 0
mov dword [esi + 4], 0
lea ecx, [esp + 0xd8]
call fcn.10096200
mov ecx, 4
xor ebx, ebx
inc ebx
mov dword [esp], ecx
nop word cs:[eax + eax]
nop dword [eax]
cmp ebx, 1
je 0x100af792
lea edi, [ecx + 0x74]
dec ebx
call fcn.10095730
mov ecx, edi
jmp 0x100af780
cmp dword [esp + 0x14], 0
je 0x100b01ad
mov eax, dword [0x1035648c]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100b01ad
movdqu xmmword [esp + 0x78], xmm1
movsd xmm1, qword [esp + 0x48]
lea ecx, [esp + 0xb0]
movdqu xmmword [esp + 0x88], xmm2
movdqu xmmword [esp + 0x98], xmm3
movq qword [esp + 0xa8], xmm4
mov dword [esp + 0x64], eax
movdqu xmmword [esp + 0x68], xmm0
movsd xmm2, qword [esp + 0x40]
movsd qword [esp + 0x160], xmm1
movsd qword [ecx + 0x20], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x158], xmm2
movsd qword [ecx + 0x18], xmm2
movq xmm2, qword [esp + 0x30]
movsd qword [esp + 0x150], xmm1
movsd qword [ecx + 0x10], xmm1
movq xmm1, qword [esp + 0x28]
movq qword [esp + 0x148], xmm2
movq qword [ecx + 8], xmm2
movq qword [esp + 0x140], xmm1
movq qword [ecx], xmm1
lea ecx, [esp + 0xd8]
call fcn.10096200
lea edi, [esp + 0x140]
lea esi, [esp + 0x64]
mov ecx, 0x1d
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x10]
call fcn.1009a8b0
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
imul eax, ebx, 0x74
add eax, esi
push 0x74
lea ecx, [esp + 0x144]
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
inc ebx
mov dword [esp + 0x18], ebx
jne 0x100af8aa
mov ebx, dword [ebp + 0xc]
mov esi, 4
mov dword [esp], 0
jmp 0x100afbce
mov ecx, dword [ebp + 0xc]
movzx eax, word [ecx + 0x45]
mov word [esp + 0x3c], ax
mov eax, dword [ecx + 0x41]
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 0x40]
movzx ecx, byte [ecx + 0x47]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x3f], al
mov byte [esp + 0x3e], cl
lea eax, [esp + 0x28]
mov dword [esp], esi
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.100fd400
add esp, 0x14
mov ecx, dword [ebp + 8]
cmp byte [esp + 0x88], 7
jne 0x100afa13
mov eax, dword [esp + 0x7c]
movq xmm0, qword [esp + 0x74]
movq xmm2, qword [esp + 0x6c]
movq xmm1, qword [esp + 0x64]
mov dword [esp + 0x60], eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x2c]
movq qword [esp + 0x50], xmm2
movq qword [esp + 0x58], xmm0
movq qword [esp + 0xe0], xmm2
movq qword [esp + 0xe8], xmm0
movq qword [esp + 0xd8], xmm1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100afb16
mov edi, dword [esp + 8]
xor esi, esi
jmp 0x100af9a1
mov eax, dword [esp]
add edi, 0x1c
inc esi
dec eax
je 0x100afb16
mov dword [esp], eax
mov eax, dword [edi]
mov edx, 0
add eax, 0xfffffff8
movzx ecx, ax
lea eax, [ecx + 1]
cmp cx, 8
cmovae eax, edx
cmp eax, 3
ja 0x100af993
mov eax, dword [eax*4 + 0x100b0434]
lea ecx, [esi + esi*8]
lea ebx, [ecx + ecx*2]
add ebx, esi
add ebx, dword [esp + 8]
add eax, dword [esp + 0xc]
jmp eax
movsd xmm0, qword [esp + 0x84]
movsd xmm1, qword [esp + 0x6c]
mov esi, dword [esp + 0x34]
movsd qword [esp + 0x160], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 0x148], xmm1
movsd qword [esp + 0x58], xmm1
inc esi
movsd qword [esp + 0x158], xmm0
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [esp + 0x64]
mov eax, dword [esp + 0x150]
movsd qword [esp + 0x140], xmm0
movsd qword [esp + 0x50], xmm0
movsd xmm1, qword [esp + 0x174]
movsd xmm2, qword [esp + 0x15c]
mov dword [esp + 0x60], eax
movq xmm0, qword [esp + 0x16c]
mov eax, dword [esp + 0x60]
movsd qword [ecx + 0x40], xmm1
movsd xmm1, qword [esp + 0x164]
movsd qword [ecx + 0x28], xmm2
movq xmm2, qword [esp + 0x50]
movq qword [ecx + 0x38], xmm0
movsd qword [ecx + 0x30], xmm1
movsd xmm1, qword [esp + 0x154]
movsd qword [ecx + 0x20], xmm1
movq xmm1, qword [esp + 0x58]
mov dword [ecx + 8], 0x1f
movq qword [ecx + 0xc], xmm2
mov dword [ecx + 0x1c], eax
movq qword [ecx + 0x14], xmm1
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
nop dword [eax]
cmp esi, 1
je 0x100b00b3
lea edi, [ecx + 0x1c]
dec esi
call fcn.10097110
mov ecx, edi
jmp 0x100afb00
cmp dword [esp + 0x30], 0
je 0x100afb2f
mov eax, dword [0x1035648c]
push dword [esp + 8]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xf0]
movq xmm0, qword [esp + 0xe8]
movq xmm2, qword [esp + 0xd8]
movq xmm1, qword [esp + 0xe0]
mov dword [esp + 0x158], eax
movq qword [esp + 0x150], xmm0
movq qword [esp + 0x148], xmm1
movq qword [esp + 0x140], xmm2
lea ecx, [esp + 0x1c]
call fcn.1009a800
mov ebx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movq xmm0, qword [esp + 0x140]
movq xmm1, qword [esp + 0x148]
movq xmm2, qword [esp + 0x150]
mov ecx, dword [esp + 0x158]
lea eax, [edx + edx*8]
lea eax, [eax + eax*2]
add eax, edx
inc edx
mov dword [esi + eax + 0x18], ecx
movq qword [esi + eax + 0x10], xmm2
movq qword [esi + eax + 8], xmm1
movq qword [esi + eax], xmm0
mov dword [esp], edx
mov dword [esp + 0x24], edx
movzx eax, byte [ebx + 0x30]
movzx ecx, byte [ebx + 0x36]
movzx edx, byte [ebx + 0x37]
mov ah, byte [ebx + 0x38]
cmp al, 3
je 0x100afc00
cmp al, 2
je 0x100afc00
mov edi, dword [ebx + 0x28]
mov dword [esp + 8], edi
lock inc dword [edi]
jle 0x100b01c4
mov edi, dword [ebx + 0x2c]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 8]
mov byte [esp + 0x9a], cl
mov byte [esp + 0x9b], dl
mov edx, dword [esp + 0xc]
movzx ecx, byte [ebx + 0x3e]
mov byte [esp + 0x9c], ah
mov dword [esp + 0x8c], edi
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x90], edx
mov edx, dword [ebx + 8]
mov byte [esp + 0x94], al
mov byte [esp + 0xa2], cl
mov ecx, dword [ebx + 0x10]
xor eax, eax
test edx, edx
setne al
cmp edx, 2
cmove eax, edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x6c], eax
xor eax, eax
test ecx, ecx
setne al
cmp ecx, 2
cmove eax, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
xor eax, eax
test edi, edi
mov edx, dword [ebx + 0x14]
setne al
cmp edi, 2
cmove eax, edi
mov edi, dword [ebx]
mov dword [esp + 0x78], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x64], edi
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x68], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x7c], eax
xor eax, eax
test edi, edi
setne al
cmp edi, 2
cmove eax, edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x39]
mov dword [esp + 0x9d], eax
movzx eax, byte [ebx + 0x3d]
mov byte [esp + 0xa1], al
movzx eax, word [ebx + 0x34]
mov word [esp + 0x98], ax
mov eax, dword [esp]
test eax, eax
je 0x100afdcd
lea ebx, [eax*4]
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x100afd11
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100b01b7
mov dword [edi], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100b01b7
mov edi, eax
xor eax, eax
cmp dword [esp], 8
lea edx, [esp + 0x140]
jb 0x100afdb2
mov eax, dword [esp]
movdqa xmm0, xmmword [0x10247f30]
movdqa xmm1, xmmword [0x10247f40]
movdqa xmm3, xmmword [str.pppp_b_b_b_b]
movdqa xmm4, xmmword [0x10247f60]
movd xmm2, esi
xor ecx, ecx
pshufd xmm2, xmm2, 0
and eax, 0xfffffff8
nop word cs:[eax + eax]
nop
movdqa xmm5, xmm0
pshufd xmm6, xmm0, 0xf5
paddd xmm0, xmm4
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
paddd xmm5, xmm2
movdqu xmmword [edi + ecx*4], xmm5
paddd xmm5, xmm3
movdqu xmmword [edi + ecx*4 + 0x10], xmm5
add ecx, 8
cmp eax, ecx
jne 0x100afd70
cmp dword [esp], eax
je 0x100afdd9
lea ecx, [eax + eax*8]
add esi, eax
lea ecx, [ecx + ecx*2]
add esi, ecx
mov ecx, dword [esp]
nop
mov dword [edi + eax*4], esi
inc eax
add esi, 0x1c
cmp ecx, eax
jne 0x100afdc0
jmp 0x100afdd9
mov edi, 4
lea edx, [esp + 0x140]
movsd xmm1, qword [esp + 0x94]
movsd xmm2, qword [esp + 0x8c]
movq xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x84]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x7c]
movq qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x158], xmm2
movq xmm2, qword [esp + 0x64]
movsd qword [esp + 0x150], xmm1
movq xmm1, qword [esp + 0x6c]
movq qword [esp + 0x140], xmm2
movq qword [esp + 0x148], xmm1
mov ebx, dword [esp]
push ebx
push edi
push edx
call fcn.100aec70
add esp, 0xc
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push ebx
push edi
push eax
lea eax, [esp + 0x14c]
push eax
call fcn.100b1cd0
add esp, 0x10
mov eax, dword [esp + 0x140]
cmp eax, 2
jne 0x100b0012
mov esi, dword [esp + 0x144]
mov ebx, dword [esp + 0x148]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], ebx
lock inc dword [esi]
jle 0x100b01c4
mov eax, dword [0x103564a0]
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], ebx
movzx eax, byte [eax]
mov eax, dword [0x1035648c]
mov eax, dword [eax]
test eax, eax
jne 0x100afef8
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100b01c8
mov ecx, dword [0x1035648c]
mov dword [ecx], eax
push 8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100b01c8
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [esp + 0x438], 0
mov byte [esp + 0x43c], 0
mov dword [esp + 0x440], 4
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov dword [esp + 0x140], eax
mov eax, dword [0x103564a0]
mov dword [esp + fcn.10095150], 0x1024a020
mov dword [esp + 0x44c], 0
mov dword [esp + 0x148], 2
movzx eax, byte [eax]
mov eax, dword [0x1035648c]
mov eax, dword [eax]
test eax, eax
jne 0x100aff93
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100b01d6
mov ecx, dword [0x1035648c]
mov dword [ecx], eax
push 0x310
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100b01d6
mov ecx, eax
push 0x310
lea eax, [esp + 0x144]
push eax
mov dword [esp + 0x10], ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x148], esi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], eax
mov eax, dword [0x103564a0]
mov dword [esp + 0x140], 1
mov dword [esp + 0x144], 1
movzx eax, byte [eax]
mov eax, dword [0x1035648c]
mov eax, dword [eax]
test eax, eax
je 0x100b00d7
mov esi, dword [ebp + 8]
jmp 0x100b00ef
movsd xmm1, qword [esp + 0x16c]
movsd xmm2, qword [esp + 0x174]
mov ecx, dword [esp + 0x184]
movq xmm0, qword [esp + 0x17c]
movsd qword [esi + 0x2c], xmm1
movsd xmm1, qword [esp + 0x15c]
movsd qword [esi + 0x34], xmm2
movsd xmm2, qword [esp + 0x164]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0xc]
movq qword [esi + 0x3c], xmm0
movsd qword [esi + 0x1c], xmm1
movsd xmm1, qword [esp + 0x154]
movsd qword [esi + 0x24], xmm2
movq xmm2, qword [esp + 0x14c]
movsd qword [esi + 0x14], xmm1
movq xmm1, qword [esp + 0x144]
movq qword [esi + 0xc], xmm2
mov dword [esi], eax
movq qword [esi + 4], xmm1
lock dec dword [ecx]
jne 0x100b009c
call fcn.10099aa0
cmp dword [esp], 0
je 0x100b014b
mov eax, dword [0x1035648c]
push edi
push 0
jmp 0x100b0144
cmp dword [esp + 0x30], 0
je 0x100b00cc
mov eax, dword [0x1035648c]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp + 8]
mov ecx, dword [esp]
jmp 0x100af76e
call sub.KERNEL32.dll_GetProcessHeap
mov esi, dword [ebp + 8]
test eax, eax
je 0x100b01e7
mov ecx, dword [0x1035648c]
mov dword [ecx], eax
push 0x14
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100b01e7
mov ecx, dword [esp + 0x150]
cmp dword [esp], 0
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 8]
movq xmm0, qword [esp + 0x140]
movq xmm1, qword [esp + 0x148]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi], 2
je 0x100b014b
push edi
push 0
mov eax, dword [0x1035648c]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.10096100
cmp dword [esp + 0x20], 0
je 0x100b0170
mov eax, dword [0x1035648c]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp], ecx
nop dword [eax]
cmp esi, 1
je 0x100b0192
lea edi, [ecx + 0x74]
dec esi
call fcn.10095730
mov ecx, edi
jmp 0x100b0180
cmp dword [esp + 0x14], 0
je 0x100b01aa
mov eax, dword [0x1035648c]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp + 8]
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
push 4
call fcn.1001a7e0
add esp, 8
jmp 0x100b01f3
ud2
push 8
push 4
call fcn.1001a7e0
add esp, 8
jmp 0x100b01f3
push 0x310
push 8
call fcn.1001a7e0
add esp, 8
jmp 0x100b01f3
push 0x14
push 4
call fcn.1001a7e0
add esp, 8
ud2