Function at 0x100d9361
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 [0x101a4c2c]
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 + 0xc], eax
lea edi, [esp + 0x3c]
mov eax, dword [ebp + 0x20]
xor ebx, ebx
push 8
mov dword [esp + 0x24], eax
xor esi, esi
xor eax, eax
mov dword [esp + 0x2c], edx
pop ecx
rep stosd dword es:[edi], eax
test edx, edx
je 0x100d93b7
cmp dword [esp + 0xc], eax
je 0x100d93b7
cmp dword [ebp + 0xc], eax
jbe 0x100d93b7
cmp dword [ebp + 0x18], eax
jne 0x100d93d0
cmp dword [ebp + 0x14], eax
je 0x100d93d5
mov eax, 0x80070057
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10166ce0
mov esp, ebp
pop ebp
ret 0x1c
cmp dword [ebp + 0x14], eax
jbe 0x100d93b7
cmp dword [esp + 0x20], eax
je 0x100d93b7
cmp dword [ebp + 0x1c], eax
jbe 0x100d93b7
mov ecx, dword [esp + 0x28]
xor edx, edx
push 0
call fcn.100e26f0
mov edi, eax
mov dword [esp + 0x34], edi
test edi, edi
je 0x100d9a57
mov ecx, edi
call fcn.100e1bc9
test eax, eax
je 0x100d9a46
mov ecx, dword [esp + 0x28]
push 2
pop edx
call fcn.1010c57f
mov esi, eax
test esi, esi
je 0x100d9a46
mov edx, dword [esi + 0x1c]
mov ecx, edi
push 1
push 0
push dword [esp + 0x14]
call fcn.100e1842
test eax, eax
je 0x100d9a46
mov ecx, edi
call fcn.100e1cb4
test eax, eax
je 0x100d9a46
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.100e1f79
mov ecx, dword [edi + 0x18]
push dword [edi + 0x38]
mov ecx, dword [ecx + 0x14]
call fcn.1010b537
mov dword [esp + 0x28], eax
test eax, eax
je 0x100d9a57
mov ecx, dword [edi + 0x28]
mov esi, dword [ecx + 4]
cmp esi, 8
jbe 0x100d948d
push edi
call fcn.100e2690
jmp 0x100d9a57
test esi, esi
je 0x100d9551
add ecx, 0x18
lea eax, [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0xc]
dec esi
test eax, eax
je 0x100d9542
and dword [esp + 0xc], 0
mov edx, 0x10024634
push eax
lea eax, [esp + 0x10]
mov ecx, 0x10024684
push eax
call fcn.1010fffd
mov ebx, eax
test ebx, ebx
jns 0x100d94e4
cmp ebx, 0x80040111
je 0x100d94e0
cmp ebx, 0x80004002
jne 0x100d9551
xor ebx, ebx
jmp 0x100d953e
cmp dword [0x101a5fc4], 0
mov ecx, dword [esp + 0xc]
je 0x100d95a8
cmp dword [0x101a5fc0], 0
je 0x100d95a8
test ecx, ecx
je 0x100d95a8
push dword [esp + 0x10]
mov edx, ecx
mov ecx, dword [esp + 0x20]
push 0x10024634
push 0x10024684
mov ecx, dword [ecx]
call fcn.1010ff95
test eax, eax
jns 0x100d9533
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x1c]
add ecx, 0x78
mov dword [esp + 0x1c], ecx
test esi, esi
jne 0x100d94a4
mov ecx, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x38], esi
mov edx, dword [ecx + 4]
mov dword [esp + 0x2c], edx
test ebx, ebx
js 0x100d99f4
lea eax, [edx + 0x10]
mov dword [esp + 0x10], eax
cmp esi, dword [ecx]
jae 0x100d99f4
mov edx, dword [edx]
mov ecx, 0x10019f6c
mov eax, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x100d95b0
test si, si
je 0x100d95a4
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x100d95b0
add eax, 4
add ecx, 4
test si, si
jne 0x100d9582
xor eax, eax
jmp 0x100d95b5
mov eax, dword [esp + 0x10]
mov dword [eax], ecx
jmp 0x100d9537
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100d97c7
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], 0xa
jne 0x100d99ef
cmp dword [eax], 0x10
jne 0x100d99ef
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
xor eax, eax
and dword [esp + 0xc], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
cmp dword [esi], eax
jbe 0x100d9658
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, 0x10019fbc
mov si, word [ecx]
cmp si, word [edx]
jne 0x100d9625
test si, si
je 0x100d9621
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100d9625
add ecx, 4
add edx, 4
test si, si
jne 0x100d95ff
xor ecx, ecx
jmp 0x100d962a
sbb ecx, ecx
or ecx, 1
test ecx, ecx
jne 0x100d963e
cmp dword [eax + 8], 0xa
jne 0x100d963e
cmp dword [eax + 0x10], 8
je 0x100d96c0
mov esi, dword [esp + 0xc]
add eax, 0x18
mov ecx, dword [esp + 0x20]
inc esi
mov dword [esp + 0xc], esi
cmp esi, dword [ecx]
jb 0x100d95f8
mov eax, dword [esp + 0x18]
mov esi, ecx
mov edx, dword [esp + 0x28]
mov ecx, edi
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x2c]
call fcn.100d9279
test eax, eax
je 0x100d99e8
xor eax, eax
xor ecx, ecx
mov dword [esp + 0xc], eax
cmp dword [esi], eax
jbe 0x100d96fa
mov esi, dword [esi + 4]
mov eax, dword [esi]
mov edx, 0x10019f90
mov di, word [eax]
cmp di, word [edx]
mov edi, dword [esp + 0x34]
jne 0x100d96c9
cmp word [eax], cx
je 0x100d96bc
mov di, word [eax + 2]
cmp di, word [edx + 2]
mov word [esp + 0x1c], di
mov edi, dword [esp + 0x34]
jne 0x100d96c9
add eax, 4
add edx, 4
cmp word [esp + 0x1c], cx
jne 0x100d968b
xor eax, eax
jmp 0x100d96ce
mov eax, dword [eax + 0x14]
mov esi, dword [esp + 0x20]
jmp 0x100d9658
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100d96d8
cmp dword [esi + 8], 2
je 0x100d96ee
mov eax, dword [esp + 0xc]
add esi, 0x18
mov edx, dword [esp + 0x20]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [edx]
jb 0x100d9684
jmp 0x100d96fa
imul ecx, dword [esp + 0xc], 0x18
mov eax, dword [esp + 0x20]
add ecx, dword [eax + 4]
test ebx, ebx
js 0x100d9714
cmp dword [esp + 0x14], 0
jne 0x100d9714
test ecx, ecx
je 0x100d970f
and dword [ecx + 0x10], 0
jmp 0x100d9714
mov ebx, 0x80004005
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 8]
test ax, ax
je 0x100d972b
lea ecx, [edx + eax]
jmp 0x100d972d
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
test ebx, ebx
js 0x100d99c2
xor edx, edx
mov dword [esp + 0x18], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x100d99c2
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x14], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x100d97aa
push dword [esp + 0x24]
mov eax, dword [edi + 0x2c]
mov esi, dword [esi]
push ecx
push dword [esp + 0x1c]
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 [0x101a77c4]
call dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x1c]
add ecx, dword [esp + 0x14]
add edx, 0x78
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jns 0x100d9745
jmp 0x100d99c2
mov ecx, 0x10019f10
mov eax, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x100d97f4
test si, si
je 0x100d97f0
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x100d97f4
add eax, 4
add ecx, 4
test si, si
jne 0x100d97ce
xor eax, eax
jmp 0x100d97f9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100d98c2
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], 2
jne 0x100d99ef
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 8]
test ax, ax
je 0x100d9826
lea ecx, [edx + eax]
jmp 0x100d9828
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x24], eax
test ebx, ebx
js 0x100d99c2
xor edx, edx
mov dword [esp + 0x14], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x100d99c2
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 0x100d98a5
push dword [esp + 0x10]
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 + 0x10]
push dword [esp + 0x48]
call dword [0x101a77c4]
call dword [esi + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x18]
add edx, 0x78
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], edx
test ebx, ebx
jns 0x100d9840
jmp 0x100d99c2
mov eax, 0x10019ef0
mov cx, word [edx]
cmp cx, word [eax]
jne 0x100d98ed
test cx, cx
je 0x100d98e9
mov cx, word [edx + 2]
cmp cx, word [eax + 2]
jne 0x100d98ed
add edx, 4
add eax, 4
test cx, cx
jne 0x100d98c7
xor eax, eax
jmp 0x100d98f2
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100d99c2
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], 2
jne 0x100d99ef
mov edx, dword [esp + 0x28]
mov ecx, edi
push eax
call fcn.100d92e8
test eax, eax
je 0x100d99e8
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 8]
test ax, ax
je 0x100d9933
lea ecx, [edx + eax]
jmp 0x100d9935
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x24], eax
test ebx, ebx
js 0x100d99c2
xor edx, edx
mov dword [esp + 0x14], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x100d99c2
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 0x100d99aa
push dword [esp + 0x10]
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 + 0x14]
push dword [esp + 0x48]
call dword [0x101a77c4]
call dword [esi + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x18]
add edx, 0x78
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], edx
test ebx, ebx
jns 0x100d9949
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
inc esi
add dword [esp + 0x10], 0x18
add edx, 0x18
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], edx
test ebx, ebx
js 0x100d99f4
mov ecx, dword [esp + 0x20]
jmp 0x100d9571
mov ebx, 0x80004005
jmp 0x100d99f4
mov ebx, 0x80070057
mov eax, dword [edi + 0x28]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [eax + 4], ecx
jbe 0x100d9a30
mov edx, dword [esp + ecx*4 + 0x3c]
test edx, edx
je 0x100d9a23
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101a77c4]
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 0x100d9a02
mov ecx, dword [esp + 0x28]
call fcn.1010b565
push edi
call fcn.100e2690
mov eax, ebx
jmp 0x100d93bc
push edi
call fcn.100e2690
test esi, esi
je 0x100d9a57
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0x80004005
jmp 0x100d93bc