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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x101a4c2c]
xor eax, ebp
mov dword [ebp - 4], eax
or dword [ebp - 8], 0xffffffff
mov eax, edx
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x20], eax
xor ebx, ebx
mov dword [ebp - 0x24], ecx
push edi
mov dword [ebp - 0x2c], edi
inc ebx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x28], edi
call fcn.100ff4d0
mov esi, eax
mov dword [ebp - 0x30], esi
test esi, esi
je 0x100fa0a3
cmp dword [ebp + 0x14], edi
jne 0x100f99fe
mov ecx, dword [esi + 0x10]
push 2
pop edx
call fcn.1010c57f
mov dword [ebp - 0x28], eax
test eax, eax
je 0x100fa0a3
mov eax, dword [eax + 0x1c]
mov ebx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
lea ecx, [eax - 1]
movzx edi, cx
neg edi
sbb edi, edi
and edi, ebx
cmp ax, 0x1c
je 0x100f9a25
cmp ax, 7
je 0x100f9a25
cmp ax, 0x16
je 0x100f9a25
cmp ax, 0x1e
jne 0x100f9a34
mov ecx, esi
call fcn.100e1bc9
test eax, eax
je 0x100fa095
mov edx, dword [ebp - 0xc]
xor ebx, ebx
push edi
push ebx
push dword [ebp + 0x14]
mov ecx, esi
call fcn.100fed27
test eax, eax
je 0x100fa095
mov ecx, esi
call fcn.100fef2a
test eax, eax
je 0x100fa095
push ebx
push ebx
xor edx, edx
mov ecx, esi
call fcn.100ff013
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x38]
push ebx
push 0x200
mov ecx, dword [ecx + 0x14]
call fcn.1010b697
push ecx
push 1
push ebx
xor edx, edx
mov ecx, esi
call fcn.100fbf7c
mov ecx, esi
call fcn.100e203e
test eax, eax
je 0x100fa095
mov edx, dword [esi + 0x2c]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
test ebx, ebx
je 0x100f9b1e
mov ecx, dword [ebp + 8]
call fcn.100db0d2
test eax, eax
je 0x100f9b1e
mov eax, dword [esi + 0x28]
mov ebx, dword [eax + 4]
lea edi, [eax + 0x14]
test ebx, ebx
je 0x100f9b0c
xor eax, eax
dec ebx
cmp dword [edi + 0x10], eax
je 0x100f9b05
cmp dword [edi + 0x24], eax
je 0x100f9b05
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
xor eax, eax
push dword [edi + 0x1c]
push edx
push eax
push ecx
push dword [ebp - 0x20]
mov edx, esi
mov ecx, edi
push dword [ebp - 0x24]
call fcn.100d8924
cmp eax, 0x80004001
je 0x100f9afd
cmp eax, 0x4dc01
je 0x100f9b63
test eax, eax
js 0x100f9b5a
mov edx, dword [ebp - 0x10]
xor eax, eax
mov ecx, dword [ebp + 8]
add edi, 0x78
test ebx, ebx
jne 0x100f9ac2
mov eax, dword [ebp - 0x18]
or dword [ebp - 8], 0xffffffff
test eax, eax
jne 0x100f9fa0
mov ebx, dword [ebp + 0xc]
mov eax, dword [esi + 0x24]
xor edx, edx
mov edi, edx
mov dword [ebp - 0xc], edi
cmp dword [eax + 0x128], edx
jne 0x100f9b43
mov ecx, dword [esi + 0x10]
lea eax, [ebp - 0xc]
push edx
push edx
push eax
call fcn.1010c806
mov edi, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ebp + 8]
movzx eax, cx
dec eax
cmp eax, 0x22
ja case.0x100f9b53.19
jmp dword [eax*4 + 0x100fa0c1]
or dword [ebp - 8], 0xffffffff
jmp 0x100fa095
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
jmp 0x100f9b0f
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x40]
mov dword [ebp - 8], eax
jmp 0x100f9fa0
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x42]
jmp 0x100f9b72
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x44]
jmp 0x100f9b72
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x46]
jmp 0x100f9b72
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x48]
jmp 0x100f9b72
test ebx, ebx
je 0x100f9ba6
xor eax, eax
mov word [ebx], ax
mov dword [ebp - 8], edx
jmp 0x100f9fa0
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x3c]
mov edx, ecx
mov dword [ebp - 8], ecx
test edi, edi
je 0x100f9bd7
mov eax, dword [esi + 0x30]
test dword [eax + 4], 0x2000
je 0x100f9bd7
mov eax, 0x270f
cmp ecx, eax
jae 0x100f9bd7
mov dword [ebp - 8], eax
mov edx, eax
mov edi, dword [ebp + 0xc]
mov eax, 0x7fff
cmp edx, eax
jb 0x100f9fa3
mov dword [ebp - 8], eax
jmp 0x100f9fa3
mov edi, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x38]
push 3
push ecx
mov ecx, edi
call fcn.1010b72b
test eax, eax
je 0x100f9c26
mov ecx, dword [edi + 0xd4]
test ecx, ecx
je 0x100f9c18
mov eax, dword [edi + 0x13c]
add eax, ecx
jmp 0x100f9c1a
xor eax, eax
test eax, eax
je 0x100f9c26
xor eax, eax
inc eax
jmp 0x100f9b72
xor eax, eax
jmp 0x100f9b72
mov eax, dword [ebp - 0x10]
test dword [eax + 0x48], 0x4000
jne 0x100f9c40
mov eax, edx
jmp 0x100f9b72
mov ecx, dword [esi + 0x24]
cmp dword [ecx + 0x128], edx
jne 0x100f9c53
push 6
pop eax
jmp 0x100f9b72
xor edx, edx
inc edx
call fcn.1010bd58
jmp 0x100f9b72
mov ecx, dword [esi + 0x24]
cmp dword [ecx + 0x128], edx
je 0x100f9c75
call fcn.1015c091
jmp 0x100f9b72
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 0x44]
mov eax, dword [eax + edx + 4]
and eax, 0x200
test byte [ecx + 0x88], 4
je 0x100f9c9f
neg eax
sbb eax, eax
and eax, 0xb4
add eax, 0x5a
jmp 0x100f9b72
neg eax
sbb eax, eax
and eax, 0xffffff4c
add eax, 0x10e
jmp 0x100f9b72
push dword [ebp + 0x10]
push edx
push edx
push edx
mov edx, ebx
mov ecx, esi
call fcn.100fa14d
jmp 0x100f9b72
push dword [ebp + 0x10]
push edx
push edx
push ebx
xor edx, edx
jmp 0x100f9cba
push dword [ebp + 0x10]
push edx
push ebx
push edx
jmp 0x100f9ccc
push ecx
mov ecx, esi
call fcn.100fa439
jmp 0x100f9b72
mov edx, ebx
mov ecx, esi
call fcn.100fa58f
jmp 0x100f9b72
mov edx, ebx
mov ecx, esi
call fcn.100dbe9b
jmp 0x100f9b72
mov edx, ebx
mov ecx, esi
call fcn.100dbefb
jmp 0x100f9b72
test edi, edi
je 0x100f9d2b
mov eax, dword [esi + 0x30]
test dword [eax + 4], 0x2000
je 0x100f9d2b
mov dword [ebp - 8], 1
jmp 0x100f9fa0
mov edi, dword [esi + 0x24]
push edx
mov edx, dword [esi + 0x38]
push 0xa
push ecx
mov ecx, edi
call fcn.1010b72b
test eax, eax
je 0x100f9c26
mov ecx, dword [edi + 0xf0]
test ecx, ecx
je 0x100f9d58
mov eax, dword [edi + 0x13c]
add eax, ecx
jmp 0x100f9d5a
xor eax, eax
test eax, eax
je 0x100f9c26
jmp 0x100f9d1f
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x88]
shr eax, 3
and eax, 1
jmp 0x100f9b72
mov edx, ebx
mov ecx, esi
call fcn.100dc0bc
jmp 0x100f9b72
test ebx, ebx
je 0x100f9d1f
push 0x20
mov edx, 0x10029018
mov ecx, ebx
call fcn.1010c0d1
jmp 0x100f9d1f
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x74]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 8], eax
test eax, eax
jne 0x100f9fa3
or dword [ebp - 8], 0xffffffff
jmp 0x100f9fa3
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x78]
jmp 0x100f9da0
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x7c]
jmp 0x100f9da0
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 8]
shr eax, 0xa
jmp 0x100f9b72
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x128], edx
je 0x100f9df0
mov eax, dword [esi + 0x18]
test dword [eax + 0xc], 0x100000
je 0x100f9e94
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0x14]
call fcn.1015ba5d
mov ebx, eax
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x100f9e92
mov ecx, ebx
call fcn.100dbfc2
mov dword [ebp - 8], eax
test eax, eax
je 0x100f9e86
cmp dword [ebp + 0xc], 0
je 0x100f9e86
xor ecx, ecx
mov dword [ebp - 0x1c], ebx
mov eax, ecx
mov dword [ebp - 0xc], eax
cmp word [ebx], cx
je 0x100f9e83
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
cmp edi, 0xffffffff
je 0x100f9e3b
cmp edi, 0x40
jl 0x100f9e7a
push 0x40
mov edx, ebx
mov ecx, esi
call fcn.1010c0d1
mov ecx, ebx
sub esi, 0xffffff80
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x2c]
jne 0x100f9e4e
sub ecx, edx
sar ecx, 1
lea ebx, [ebx + ecx*2]
add ebx, 2
cmp edi, 0xffffffff
je 0x100f9e6c
sub edi, 0x40
mov eax, dword [ebp - 0xc]
xor ecx, ecx
inc eax
mov dword [ebp - 0xc], eax
cmp word [ebx], cx
jne 0x100f9e31
mov ebx, dword [ebp - 0x14]
mov dword [ebp + 0xc], esi
mov esi, dword [ebp - 0x30]
mov dword [ebp - 8], eax
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x100f9fa0
xor edx, edx
mov edi, dword [ebp + 0xc]
mov dword [ebp - 8], 1
test edi, edi
je 0x100f9fa3
cmp dword [ebp + 0x10], 0xffffffff
je 0x100f9eba
cmp dword [ebp + 0x10], 0x40
jge 0x100f9eba
mov dword [ebp - 8], edx
jmp 0x100f9fa3
call fcn.1010d9c5
mov ecx, dword [esi + 0x24]
test eax, eax
je 0x100f9ed9
test dword [ecx + 0x88], 0x400
je 0x100f9ef8
mov edx, 0x10024ed8
jmp 0x100f9eea
test dword [ecx + 0x88], 0x200
je 0x100f9ef8
mov edx, 0x10024ee0
push 0x40
mov ecx, edi
call fcn.1010c0d1
jmp 0x100f9fa3
mov eax, dword [ecx + 0xcc]
test eax, eax
je 0x100f9f0c
mov edx, dword [ecx + 0x13c]
add edx, eax
jmp 0x100f9f10
xor eax, eax
mov edx, eax
test edx, edx
je 0x100f9dae
push dword [edx + 0x14]
call fcn.1010bc73
test eax, eax
je 0x100f9dae
push ecx
push edi
mov edx, eax
mov ecx, esi
call fcn.10108c0d
jmp 0x100f9da6
mov ebx, dword [esi + 0x24]
cmp dword [ebx + 0x128], edx
je 0x100f9f76
lea eax, [ebp - 0x14]
mov edi, edx
push eax
push 1
mov edx, 0x100298ec
mov ecx, ebx
call fcn.1010bbb4
test eax, eax
jne 0x100f9f71
lea eax, [ebp - 0x14]
mov edx, 0x10029904
push eax
push 1
mov ecx, ebx
call fcn.1010bbb4
test eax, eax
je 0x100f9f7f
xor edi, edi
inc edi
jmp 0x100f9f7f
mov ecx, esi
call fcn.101095e8
mov edi, eax
mov dword [ebp - 8], edi
jmp 0x100f9fa0
push edx
mov edx, ebx
mov ecx, esi
call fcn.100fa62f
jmp 0x100f9b72
push ebx
xor edx, edx
jmp 0x100f9f87
push 0x32
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebp + 0xc]
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [eax + 4]
lea ebx, [eax + 0x14]
test ecx, ecx
je 0x100fa063
xor eax, eax
dec ecx
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x10], eax
je 0x100fa055
mov edi, dword [ebp - 8]
cmp dword [ebx + 0x24], eax
je 0x100fa00c
lea eax, [ebp - 8]
mov edx, esi
push eax
push edi
push dword [ebx + 0x1c]
mov edi, dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp - 0x10]
push edi
push dword [ebp + 8]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.100d8924
cmp eax, 0x80004001
je 0x100fa007
cmp eax, 0x4dc01
jne 0x100fa007
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 0xc]
jmp 0x100fa053
test byte [ebx + 0x3c], 0x40
je 0x100fa017
mov eax, dword [ebx + 0x58]
jmp 0x100fa024
push 6
pop edx
mov ecx, ebx
call fcn.10110711
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100fa050
push edi
push dword [ebx + 0x1c]
mov edi, dword [ebp + 0xc]
mov ecx, eax
push dword [ebp - 0x10]
push edi
push dword [ebp + 8]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push esi
call dword [0x101a77c4]
call dword [ebp - 0x1c]
mov dword [ebp - 8], eax
jmp 0x100fa007
mov edi, dword [ebp + 0xc]
xor eax, eax
add ebx, 0x78
test ecx, ecx
jne 0x100f9fbc
mov edx, dword [ebp - 0x14]
test edi, edi
jne 0x100fa095
mov edi, dword [ebp - 8]
cmp edi, 0xffffffff
je 0x100fa095
cmp edx, 0xffffffff
je 0x100fa095
cmp edi, edx
jae 0x100fa095
mov ecx, dword [ebp + 8]
call fcn.100db0d2
test eax, eax
je 0x100fa095
test edi, edi
je 0x100f9b5a
cmp dword [ebp - 0x18], 0
jne 0x100fa095
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x100fa0a3
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push esi
call fcn.100ff470
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.10166ce0
mov esp, ebp
pop ebp
ret 0x10