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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x50
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2d8]
mov eax, dword [ecx + 0x2dc]
cmp edx, eax
mov dword [esp + 0x14], edx
jae 0x1001324f
cmp eax, 3
mov dword [esp + 0x48], eax
jne 0x10013265
mov eax, dword [ecx + 0x1ac]
mov ebx, 4
mov dword [esp + 8], 4
test eax, eax
mov dword [esp + 4], eax
je 0x10012be8
mov ecx, dword [esp + 4]
xor edx, edx
cmp ecx, 0x20000000
setb al
jae 0x100132bd
mov dl, al
lea edi, [ecx*4]
shl edx, 2
test edi, edi
js 0x100132c4
je 0x10012b45
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1035648c]
mov eax, dword [eax]
test eax, eax
je 0x10012b49
mov esi, edx
jmp 0x10012b62
mov eax, edx
jmp 0x10012b6d
mov esi, edx
call sub.KERNEL32.dll_GetProcessHeap
mov edx, esi
test eax, eax
je 0x100132b1
mov ecx, dword [0x1035648c]
mov dword [ecx], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edx, esi
test eax, eax
mov dword [esp + 8], eax
je 0x100132b1
xor eax, eax
cmp dword [esp + 4], 8
jb 0x10012bd4
mov eax, dword [esp + 4]
movdqa xmm0, xmmword [0x101d5600]
movdqa xmm1, xmmword [0x101d5610]
movdqa xmm2, xmmword [0x101d5620]
mov edx, dword [esp + 8]
xor ecx, ecx
and eax, 0xfffffff8
nop word [eax + eax]
movdqa xmm3, xmm0
movdqu xmmword [edx + ecx*4], xmm0
paddd xmm0, xmm2
paddd xmm3, xmm1
movdqu xmmword [edx + ecx*4 + 0x10], xmm3
add ecx, 8
cmp eax, ecx
jne 0x10012bb0
cmp dword [esp + 4], eax
je 0x10012be8
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
nop dword [eax]
mov dword [ecx + eax*4], eax
inc eax
cmp edx, eax
jne 0x10012be0
mov dword [esp + 0x3c], 0xfffffffb
mov dword [esp + 0xc], 4
mov edi, dword [ebp + 8]
mov eax, dword [esp + 4]
cmp ebx, 0x80000000
mov ecx, 0x7fffffff
lea edx, [ebx - 1]
cmovae ecx, ebx
mov dword [esp + 0x40], ecx
mov esi, dword [edi + 0x1ac]
mov edi, dword [edi + 0x1a4]
cmp ebx, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], edi
cmova esi, ebx
cmp ebx, eax
cmova eax, ebx
shl ebx, 5
mov dword [esp + 0x44], esi
neg esi
neg ecx
lea edi, [edi + ebx - 0x20]
neg eax
mov ebx, edx
nop word cs:[eax + eax]
nop
lea edx, [eax + ebx]
cmp edx, 0xffffffff
je 0x10012d87
lea edx, [ecx + ebx]
cmp edx, 0xffffffff
je 0x1001321b
lea edx, [esi + ebx]
cmp edx, 0xffffffff
je 0x100131aa
inc ebx
cmp dword [edi + 0x34], 0
lea edx, [edi + 0x20]
mov edi, edx
je 0x10012c50
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
lea eax, [edi + ebx]
cmp eax, 0xffffffff
je 0x10012d56
mov ecx, dword [esp + 0x10]
cmp ecx, esi
jbe 0x100131e6
movsd xmm0, qword [edx + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, esi
shl eax, 5
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [ecx + eax + 0x10]
movsd xmm1, qword [ecx + eax + 0x18]
movq xmm2, qword [ecx + eax]
movq xmm3, qword [ecx + eax + 8]
movq qword [edx], xmm2
movsd qword [edx + 0x18], xmm1
movsd qword [edx + 0x10], xmm0
movq qword [edx + 8], xmm3
movsd xmm0, qword [esp + 0x30]
movsd qword [ecx + eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x28]
movsd qword [ecx + eax + 0x10], xmm0
movq xmm0, qword [esp + 0x18]
movq xmm1, qword [esp + 0x20]
movq qword [ecx + eax + 8], xmm1
movq qword [ecx + eax], xmm0
mov ecx, dword [esp + 4]
mov eax, 0x101d7340
cmp ebx, ecx
jae 0x100131ed
cmp esi, ecx
jae 0x100131d2
mov edx, dword [esp + 8]
mov eax, dword [edx + ebx*4]
mov ecx, dword [edx + esi*4]
mov dword [edx + ebx*4], ecx
mov dword [edx + esi*4], eax
inc esi
dec edi
inc ebx
cmp esi, 0x7fffffff
mov dword [esp + 0x3c], edi
mov dword [esp + 0xc], esi
jne 0x10012bf8
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x7fffffff
mov eax, 0x101d67dc
jmp 0x10013230
mov eax, dword [esp + 0xc]
mov edi, 2
lea esi, [eax - 1]
cmp esi, 3
jne 0x10012db4
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
cmp eax, edi
jne 0x10012ebd
jmp 0x10012f97
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x38]
mov eax, 0x101d66a8
cmp ecx, 4
jb 0x100131d8
cmp ecx, esi
jbe 0x100131b7
movsd xmm0, qword [edx + 0x78]
mov eax, esi
mov ecx, dword [esp + 4]
shl eax, 5
movsd qword [esp + 0x30], xmm0
cmp ecx, 4
movsd xmm0, qword [edx + 0x70]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edx + 0x60]
movsd xmm1, qword [edx + 0x68]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edx + eax + 0x10]
movsd xmm1, qword [edx + eax + 0x18]
movq xmm2, qword [edx + eax]
movq xmm3, qword [edx + eax + 8]
movq qword [edx + 0x60], xmm2
movsd qword [edx + 0x78], xmm1
movsd qword [edx + 0x70], xmm0
movq qword [edx + 0x68], xmm3
movsd xmm0, qword [esp + 0x30]
movsd qword [edx + eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x28]
movsd qword [edx + eax + 0x10], xmm0
movq xmm0, qword [esp + 0x18]
movq xmm1, qword [esp + 0x20]
movq qword [edx + eax + 8], xmm1
movq qword [edx + eax], xmm0
mov eax, 0x101d7340
jb 0x100131d8
cmp esi, ecx
jae 0x100131d2
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + edi*4 - 4]
mov dword [edx + 0xc], ecx
mov dword [edx + edi*4 - 4], eax
sub edi, 2
jb 0x100132d2
mov eax, dword [esp + 0x14]
cmp edi, 0x7ffffffe
ja 0x100132e9
mov edx, dword [ebx + 0x1a4]
mov ecx, dword [ebx + 0x1ac]
cmp eax, edi
je 0x10012f97
cmp ecx, eax
jbe 0x100131f1
cmp ecx, edi
jbe 0x100131fa
mov ecx, dword [esp + 0x14]
mov eax, edi
shl eax, 5
shl ecx, 5
movsd xmm0, qword [edx + ecx + 0x18]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edx + ecx + 0x10]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edx + ecx]
movsd xmm1, qword [edx + ecx + 8]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edx + eax + 0x10]
movsd xmm1, qword [edx + eax + 0x18]
movq xmm2, qword [edx + eax]
movq xmm3, qword [edx + eax + 8]
movq qword [edx + ecx], xmm2
movsd qword [edx + ecx + 0x18], xmm1
movsd qword [edx + ecx + 0x10], xmm0
movq qword [edx + ecx + 8], xmm3
mov ecx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x30]
movsd qword [edx + eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x28]
movsd qword [edx + eax + 0x10], xmm0
movq xmm0, qword [esp + 0x18]
movq xmm1, qword [esp + 0x20]
movq qword [edx + eax + 8], xmm1
movq qword [edx + eax], xmm0
mov eax, dword [esp + 4]
cmp ecx, eax
jae 0x10013203
cmp edi, eax
jae 0x1001320e
mov edx, dword [esp + 8]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x10], eax
mov eax, ecx
mov ecx, dword [edx + edi*4]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx + edi*4], ecx
mov eax, dword [esp + 0xc]
cmp eax, 3
jb 0x100132aa
add eax, 0xfffffffd
mov dword [ebx + 0x2d4], eax
mov dword [ebx + 0x2d8], edi
mov dword [ebx + 0x2dc], esi
mov ecx, dword [ebx + 0x1ac]
cmp esi, ecx
jae 0x100131df
mov edx, dword [ebx + 0x1a4]
mov eax, esi
shl eax, 5
cmp dword [edx + eax + 0x14], 0
mov eax, edx
je 0x10012fe1
mov dword [ebx + 0x2d4], esi
mov edx, dword [esp + 4]
mov dword [esp + 0xc], eax
test edx, edx
je 0x1001306c
xor ebx, ebx
cmp edx, 0x20000000
setb al
jae 0x100132cb
mov bl, al
lea edx, [edx*4]
shl ebx, 2
test edx, edx
js 0x100132cb
mov dword [esp + 0x10], ebx
je 0x1001316c
mov eax, dword [0x103564a0]
mov ebx, dword [0x1035648c]
mov edi, ecx
movzx eax, byte [eax]
mov eax, dword [ebx]
test eax, eax
jne 0x10013045
mov esi, edx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10013178
mov edx, esi
mov dword [ebx], eax
mov esi, edx
push edx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ebx, eax
test ebx, ebx
je 0x10013178
push esi
push dword [esp + 0xc]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, edi
jmp 0x10013071
mov ebx, 4
xor eax, eax
jmp 0x1001308e
mov edx, dword [esp + 8]
mov dword [edx + eax*4], ecx
mov ecx, esi
inc eax
cmp eax, ecx
je 0x100130c5
cmp eax, dword [esp + 4]
je 0x100131c7
mov edx, dword [ebx + eax*4]
cmp eax, edx
je 0x10013089
mov esi, ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edx, dword [esp + 4]
mov ecx, edx
jae 0x1001318a
mov edx, dword [ebx + ecx*4]
cmp eax, edx
jne 0x100130b0
jmp 0x10013080
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 8]
shl ecx, 5
add ecx, eax
jmp 0x100130ed
mov eax, dword [esp + 0xc]
mov ecx, esi
add eax, 0x20
cmp eax, esi
je 0x10013147
mov esi, ecx
mov ecx, dword [eax + 0x18]
mov edx, 0x101d7370
cmp ecx, dword [esp + 4]
jae 0x10013196
mov edx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
mov eax, dword [eax + ecx*4]
mov dword [edx + 0x18], eax
mov edx, dword [edx + 8]
test edx, edx
je 0x100130e0
mov eax, dword [esp + 0xc]
shl edx, 3
mov eax, dword [eax]
add eax, 4
nop word cs:[eax + eax]
nop
mov ecx, dword [eax]
cmp ecx, dword [esp + 4]
jae 0x10013191
mov ecx, dword [edi + ecx*4]
mov dword [eax], ecx
add eax, 8
add edx, 0xfffffff8
jne 0x10013130
jmp 0x100130e0
mov esi, dword [0x1035648c]
push ebx
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 8]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, edx
mov edi, ecx
test ebx, ebx
jne 0x1001305a
push esi
push dword [esp + 0x14]
call fcn.1001a7e0
add esp, 8
jmp 0x100132e7
mov edx, 0x101d7360
jmp 0x10013196
mov edx, 0x101d7370
push edx
mov esi, dword [esp + 8]
push esi
push ecx
call fcn.10026930
add esp, 0xc
jmp 0x100132e7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
mov eax, 0x101d67cc
push eax
push ecx
push esi
call fcn.10026930
add esp, 0xc
jmp 0x100132e7
mov ecx, dword [esp + 4]
mov edx, 0x101d7350
jmp 0x10013196
mov ecx, dword [esp + 4]
jmp 0x100131b7
mov esi, 3
jmp 0x100131b7
mov eax, 0x101d67ac
jmp 0x100131b7
mov eax, 0x101d66a8
jmp 0x100131b7
mov esi, ebx
jmp 0x100131b7
mov esi, eax
mov eax, 0x101d66a8
jmp 0x100131b7
mov esi, edi
mov eax, 0x101d66a8
jmp 0x100131b7
mov esi, ecx
mov ecx, eax
mov eax, 0x101d7340
jmp 0x100131b7
mov ecx, dword [esp + 4]
mov esi, edi
mov eax, 0x101d7340
jmp 0x100131b7
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
mov eax, 0x101d67bc
lea ecx, [esp + 0x18]
push eax
push 0x101d5928
push ecx
push 0x2b
push 0x101d58fc
call fcn.10026bb0
add esp, 0x14
jmp 0x100132e7
push 0x101d6860
push 0x2f
push str.assertion_failed:_old_start_uid___old_start_aid
call fcn.10026890
add esp, 0xc
ud2
mov dword [esp + 0x18], str.anchored_start_state_should_be_at_index_3
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 0x101d56fc
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
lea eax, [esp + 0x18]
lea edx, [esp + 0x48]
mov ecx, 0x101d6778
push 0x101d6820
push eax
call fcn.10006430
add esp, 8
ud2
mov eax, 0x101d679c
jmp 0x100132d7
push edi
push edx
call fcn.1001a7e0
add esp, 8
ud2
call fcn.1001a7a0
ud2
call fcn.1001a7a0
ud2
call fcn.1001a7a0
jmp 0x100132e7
mov eax, 0x101d677c
push eax
push 0x2b
push 0x101d5670
call fcn.10026890
add esp, 0xc
ud2
mov eax, 0x101d678c
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 0
jmp 0x10013230