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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [0x1019fbfc]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [esp + 0x14], eax
lea edi, [esp + 0x3c]
mov eax, dword [ebp + 0x20]
xor ebx, ebx
push 8
mov dword [esp + 0x28], eax
xor esi, esi
xor eax, eax
mov dword [esp + 0x14], edx
pop ecx
rep stosd dword es:[edi], eax
test edx, edx
je 0x100f6079
cmp dword [esp + 0x14], eax
je 0x100f6079
cmp dword [ebp + 0xc], eax
jbe 0x100f6079
cmp dword [ebp + 0x18], eax
jne 0x100f6092
cmp dword [ebp + 0x14], eax
je 0x100f6097
mov eax, 0x80070057
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.101637b0
mov esp, ebp
pop ebp
ret 0x1c
cmp dword [ebp + 0x14], eax
jbe 0x100f6079
cmp dword [esp + 0x24], eax
je 0x100f6079
cmp dword [ebp + 0x1c], eax
jbe 0x100f6079
mov ecx, dword [esp + 0x10]
xor edx, edx
push 0
call fcn.100fd870
mov edi, eax
mov dword [esp + 0x34], edi
test edi, edi
je 0x100f670a
mov ecx, edi
call fcn.100e0408
test eax, eax
je 0x100f66f9
mov ecx, dword [esp + 0x10]
push 2
pop edx
call fcn.1010a79c
mov esi, eax
test esi, esi
je 0x100f66f9
mov edx, dword [esi + 0x1c]
mov ecx, edi
push 1
push 0
push dword [esp + 0x1c]
call fcn.100fd0e7
test eax, eax
je 0x100f66f9
mov ecx, edi
call fcn.100fd2eb
test eax, eax
je 0x100f66f9
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.100fd3d4
mov ecx, dword [edi + 0x18]
push dword [edi + 0x38]
mov ecx, dword [ecx + 0x14]
call fcn.1010978e
mov dword [esp + 0x38], eax
test eax, eax
je 0x100f670a
mov ecx, dword [edi + 0x28]
mov esi, dword [ecx + 4]
cmp esi, 8
jbe 0x100f614f
push edi
call fcn.100fd810
jmp 0x100f670a
test esi, esi
je 0x100f6213
add ecx, 0x18
lea eax, [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xc]
dec esi
test eax, eax
je 0x100f6204
and dword [esp + 0x10], 0
mov edx, 0x10024a34
push eax
lea eax, [esp + 0x14]
mov ecx, 0x10024a84
push eax
call fcn.1010dfd8
mov ebx, eax
test ebx, ebx
jns 0x100f61a6
cmp ebx, 0x80040111
je 0x100f61a2
cmp ebx, 0x80004002
jne 0x100f6213
xor ebx, ebx
jmp 0x100f6200
cmp dword [0x101a0f14], 0
mov ecx, dword [esp + 0x10]
je 0x100f6263
cmp dword [0x101a0f10], 0
je 0x100f6263
test ecx, ecx
je 0x100f6263
push dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x24]
push 0x10024a34
push 0x10024a84
mov ecx, dword [ecx]
call fcn.1010df85
test eax, eax
jns 0x100f61f5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
add ecx, 0x78
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x100f6166
mov ecx, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x2c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
test ebx, ebx
js 0x100f66a7
cmp edx, dword [ecx]
jae 0x100f66a7
mov edx, dword [eax]
mov ecx, 0x1001a06c
mov eax, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x100f626b
test si, si
je 0x100f625f
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x100f626b
add eax, 4
add ecx, 4
test si, si
jne 0x100f623d
xor eax, eax
jmp 0x100f6270
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
jmp 0x100f61f9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100f6483
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0xa
jne 0x100f66a2
cmp dword [eax + 0x10], 0x10
jne 0x100f66a2
mov eax, dword [eax + 0x14]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x28], eax
xor eax, eax
and dword [esp + 0x10], eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], eax
cmp dword [esi], eax
jbe 0x100f6314
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, 0x1001a0bc
mov si, word [ecx]
cmp si, word [edx]
jne 0x100f62e1
test si, si
je 0x100f62dd
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100f62e1
add ecx, 4
add edx, 4
test si, si
jne 0x100f62bb
xor ecx, ecx
jmp 0x100f62e6
sbb ecx, ecx
or ecx, 1
test ecx, ecx
jne 0x100f62fa
cmp dword [eax + 8], 0xa
jne 0x100f62fa
cmp dword [eax + 0x10], 8
je 0x100f637c
mov esi, dword [esp + 0x10]
add eax, 0x18
mov ecx, dword [esp + 0x24]
inc esi
mov dword [esp + 0x10], esi
cmp esi, dword [ecx]
jb 0x100f62b4
mov eax, dword [esp + 0x1c]
mov esi, ecx
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x30]
call fcn.100f5de3
test eax, eax
je 0x100f669b
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x10], eax
cmp dword [esi], eax
jbe 0x100f63b6
mov esi, dword [esi + 4]
mov eax, dword [esi]
mov edx, 0x1001a090
mov di, word [eax]
cmp di, word [edx]
mov edi, dword [esp + 0x34]
jne 0x100f6385
cmp word [eax], cx
je 0x100f6378
mov di, word [eax + 2]
cmp di, word [edx + 2]
mov word [esp + 0x20], di
mov edi, dword [esp + 0x34]
jne 0x100f6385
add eax, 4
add edx, 4
cmp word [esp + 0x20], cx
jne 0x100f6347
xor eax, eax
jmp 0x100f638a
mov eax, dword [eax + 0x14]
mov esi, dword [esp + 0x24]
jmp 0x100f6314
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100f6394
cmp dword [esi + 8], 2
je 0x100f63aa
mov eax, dword [esp + 0x10]
add esi, 0x18
mov edx, dword [esp + 0x24]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [edx]
jb 0x100f6340
jmp 0x100f63b6
imul ecx, dword [esp + 0x10], 0x18
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 4]
test ebx, ebx
js 0x100f63d0
cmp dword [esp + 0x18], 0
jne 0x100f63d0
test ecx, ecx
je 0x100f63cb
and dword [ecx + 0x10], 0
jmp 0x100f63d0
mov ebx, 0x80004005
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 0x72]
test ax, ax
je 0x100f63e7
lea ecx, [edx + eax]
jmp 0x100f63e9
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
test ebx, ebx
js 0x100f667a
xor edx, edx
mov dword [esp + 0x1c], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x100f667a
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x18], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x100f6466
push dword [esp + 0x28]
mov eax, dword [edi + 0x2c]
mov esi, dword [esi]
push ecx
push dword [esp + 0x20]
movzx ecx, word [eax + 0x46]
push eax
movzx eax, word [eax + 0x44]
add ecx, eax
push ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 0xc]
push dword [esp + 0x48]
call dword [0x101a27b8]
call dword [esi + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x20]
add ecx, dword [esp + 0x18]
add edx, 0x78
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
test ebx, ebx
jns 0x100f6401
jmp 0x100f667a
mov ecx, 0x1001a010
mov eax, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x100f64b0
test si, si
je 0x100f64ac
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x100f64b0
add eax, 4
add ecx, 4
test si, si
jne 0x100f648a
xor eax, eax
jmp 0x100f64b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100f6586
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 2
jne 0x100f66a2
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 0x72]
test ax, ax
je 0x100f64e2
lea ecx, [edx + eax]
jmp 0x100f64e4
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
test ebx, ebx
js 0x100f667a
xor edx, edx
mov dword [esp + 0x18], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x100f667a
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x100f6565
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
add eax, 0x10
mov esi, dword [esi]
push eax
push ecx
push dword [esp + 0x24]
movzx ecx, word [edx + 0x46]
movzx eax, word [edx + 0x44]
push edx
add ecx, eax
push ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push dword [esp + 0x48]
call dword [0x101a27b8]
call dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x28]
add ecx, dword [esp + 0x1c]
add edx, 0x78
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jns 0x100f64fc
jmp 0x100f667a
mov eax, 0x10019ff0
mov cx, word [edx]
cmp cx, word [eax]
jne 0x100f65b1
test cx, cx
je 0x100f65ad
mov cx, word [edx + 2]
cmp cx, word [eax + 2]
jne 0x100f65b1
add edx, 4
add eax, 4
test cx, cx
jne 0x100f658b
xor eax, eax
jmp 0x100f65b6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100f667a
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 2
jne 0x100f66a2
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 0x72]
test ax, ax
je 0x100f65e3
lea ecx, [edx + eax]
jmp 0x100f65e5
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
test ebx, ebx
js 0x100f667a
xor edx, edx
mov dword [esp + 0x18], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x100f667a
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x100f6662
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
add eax, 0x10
mov esi, dword [esi]
push eax
push ecx
push dword [esp + 0x24]
movzx ecx, word [edx + 0x46]
movzx eax, word [edx + 0x44]
push edx
add ecx, eax
push ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 0x14]
push dword [esp + 0x48]
call dword [0x101a27b8]
call dword [esi + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x28]
add ecx, dword [esp + 0x1c]
add edx, 0x78
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jns 0x100f65fd
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
inc edx
add eax, 0x18
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], eax
test ebx, ebx
js 0x100f66a7
mov ecx, dword [esp + 0x24]
jmp 0x100f622c
mov ebx, 0x80004005
jmp 0x100f66a7
mov ebx, 0x80070057
mov eax, dword [edi + 0x28]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [eax + 4], ecx
jbe 0x100f66e3
mov edx, dword [esp + ecx*4 + 0x3c]
test edx, edx
je 0x100f66d6
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101a27b8]
call esi
mov ecx, dword [esp + 0x2c]
and dword [esp + ecx*4 + 0x3c], 0
mov eax, dword [edi + 0x28]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [eax + 4]
jb 0x100f66b5
mov ecx, dword [esp + 0x38]
call fcn.101097ba
push edi
call fcn.100fd810
mov eax, ebx
jmp 0x100f607e
push edi
call fcn.100fd810
test esi, esi
je 0x100f670a
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0x80004005
jmp 0x100f607e