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

Disassembly:
sub esp, 0x94
mov eax, dword [0x101685a4]
xor eax, esp
mov dword [esp + 0x90], eax
push esi
mov esi, ecx
mov edx, dword [esi + 0xc]
test dl, 1
jne 0x100ef059
xor al, al
pop esi
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.10107bf3
add esp, 0x94
ret 4
mov ecx, dword [esp + 0x9c]
push ebx
lea ebx, [esi + 0x14]
mov dword [esp + 8], ebx
test ecx, ecx
je 0x100ef07d
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, dword [ebx]
jae 0x100ef081
mov al, 1
jmp 0x100ef335
mov dword [esp + 8], ebx
shr edx, 1
cmp edx, ecx
push edi
cmovae ecx, edx
lea ecx, [ecx*2 + 8]
test ecx, ecx
jne 0x100ef098
xor edi, edi
jmp 0x100ef09c
bsr edi, ecx
inc edi
push ebp
mov ecx, edi
mov ebp, 1
shl ebp, cl
lea ebx, [ebp*2]
add ebx, ebp
shl ebx, 2
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edx, eax
add esp, 4
test edx, edx
jne 0x100ef0cd
and dword [esi + 0xc], 0xfffffffe
xor al, al
jmp 0x100ef333
lea ecx, [ebx + edx]
mov eax, edx
cmp edx, ecx
je 0x100ef104
nop word [eax + eax]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
add eax, 0xc
cmp eax, ecx
jne 0x100ef0e0
lea ebx, [esi + 0x14]
mov dword [esp + 0x10], ebx
jmp 0x100ef108
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx]
mov dword [esi + 0x10], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 2
lea eax, [ecx + 1]
mov dword [esp + 0x28], 3
neg ecx
mov dword [esp + 0x2c], 7
mov dword [esp + 0x30], 0xd
sbb ecx, ecx
mov dword [esp + 0x34], 0x1f
and dword [esi + 0xc], 1
and ecx, eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 1]
mov dword [ebx], eax
mov eax, 0x7fffffff
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], 0x3d
mov dword [esp + 0x3c], 0x7f
mov dword [esp + 0x40], 0xfb
mov dword [esp + 0x44], 0x1fd
mov dword [esp + 0x48], 0x3fd
mov dword [esp + 0x4c], 0x7f7
mov dword [esp + 0x50], 0xffd
mov dword [esp + 0x54], 0x1fff
mov dword [esp + 0x58], 0x3ffd
mov dword [esp + 0x5c], 0x7fed
mov dword [esp + 0x60], 0xfff1
mov dword [esp + 0x64], 0x1ffff
mov dword [esp + 0x68], 0x3fffb
mov dword [esp + 0x6c], 0x7ffff
mov dword [esp + 0x70], 0xffffd
mov dword [esp + 0x74], 0x1ffff7
mov dword [esp + 0x78], 0x3ffffd
mov dword [esp + 0x7c], 0x7ffff1
mov dword [esp + 0x80], 0xfffffd
mov dword [esp + 0x84], 0x1ffffd9
mov dword [esp + 0x88], 0x3fffffb
mov dword [esp + 0x8c], 0x7ffffd9
mov dword [esp + 0x90], 0xfffffc7
mov dword [esp + 0x94], 0x1ffffffd
mov dword [esp + 0x98], 0x3fffffdd
mov dword [esp + 0x9c], 0x7fffffff
cmp edi, 0x20
jae 0x100ef254
mov eax, dword [esp + edi*4 + 0x20]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov dword [esp + 0x18], 0
test ecx, ecx
je 0x100ef324
mov ebp, dword [esp + 0x1c]
nop
mov edi, dword [ebp + 4]
test edi, 0x40000000
je 0x100ef310
test edi, edi
js 0x100ef310
mov ebx, dword [esi + 0xc]
and edi, 0x3fffffff
test bl, 1
je 0x100ef310
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
shr eax, 1
add eax, dword [esi + 0x10]
cmp eax, dword [ecx]
jb 0x100ef2b5
push 0
mov ecx, esi
call fcn.100ef020
test al, al
je 0x100ef30c
mov ebx, dword [esi + 0xc]
push edi
push ebp
mov ecx, esi
call fcn.100dedf0
mov edx, eax
mov ecx, dword [edx + 4]
shr ecx, 0x1e
test cl, 1
je 0x100ef2eb
dec dword [esi + 0x10]
mov eax, dword [edx + 4]
shr eax, 0x1f
test al, al
jne 0x100ef2eb
mov eax, ebx
and ebx, 1
shr eax, 1
lea eax, [eax*2 - 2]
or eax, ebx
mov dword [esi + 0xc], eax
mov eax, dword [ebp]
and edi, 0x3fffffff
mov dword [edx], eax
or edi, 0x40000000
mov eax, dword [ebp + 8]
mov dword [edx + 8], eax
mov dword [edx + 4], edi
inc dword [esi + 0x10]
add dword [esi + 0xc], 2
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add ebp, 0xc
inc edi
mov dword [esp + 0x18], edi
cmp edi, ecx
jb 0x100ef270
push dword [esp + 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov al, 1
pop ebp
pop edi
mov ecx, dword [esp + 0x98]
pop ebx
pop esi
xor ecx, esp
call fcn.10107bf3
add esp, 0x94
ret 4