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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x49c
mov eax, dword [0x10029170]
xor eax, esp
mov dword [esp + 0x498], eax
push ebx
push esi
push edi
mov ebx, edx
mov dword [esp + 0x14], ebx
mov esi, ecx
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], eax
mov dword [eax], 0
xor eax, eax
push eax
push eax
push eax
push eax
push 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x58]
push eax
push 0
push 0
push 8
push 0x10001968
push 1
mov byte [esp + 0x53], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
call dword [sym.imp.NSI.dll_NsiGetAllParameters]
test eax, eax
jne 0x10013f73
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], edx
mov ecx, ebx
and ecx, 0x200
mov dword [esp + 0x44], ecx
jne 0x10008a14
push 0
lea eax, [esp + 0x78]
push eax
push 0x238
lea eax, [esp + 0x28]
push eax
push 0x290
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 8
lea eax, [esp + 0x7c]
push eax
push 1
push 0x10001968
push 1
call dword [sym.imp.NSI.dll_NsiAllocateAndGetTable]
mov edi, eax
test edi, edi
jne 0x1000851b
push eax
lea eax, [esp + 0x6c]
push eax
push 0x20
lea eax, [esp + 0x5c]
push eax
push edi
push edi
push 0xe8
lea eax, [esp + 0x70]
push eax
push 8
lea eax, [esp + 0x70]
push eax
push 7
push 0x100018b0
push 1
call dword [sym.imp.NSI.dll_NsiAllocateAndGetTable]
mov edi, eax
test edi, edi
jne 0x10013f82
push 0
lea eax, [esp + 0x70]
push eax
push 0x20
lea eax, [esp + 0x6c]
push eax
push 0
push 0
push 0xe8
lea eax, [esp + 0x80]
push eax
push 8
lea eax, [esp + 0x80]
push eax
push 7
push 0x10001898
push 1
call dword [sym.imp.NSI.dll_NsiAllocateAndGetTable]
mov edi, eax
test edi, edi
jne 0x10013f90
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x20], eax
cmp dword [esp + 0x74], eax
jbe 0x1000831e
cmp dword [esp + 0x44], 0
jne 0x10007d72
mov edx, dword [esp + 0x78]
imul ecx, eax, 0x290
mov eax, dword [esp + 0x10]
cmp dword [ecx + eax], edx
jne 0x10008307
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
imul ebx, eax, 0x238
add ecx, 0x218
mov dword [esp + 0x38], ebx
add ecx, ebx
je 0x10007dd5
movzx eax, byte [ecx + 0xf]
push eax
movzx eax, byte [ecx + 0xe]
push eax
movzx eax, byte [ecx + 0xd]
push eax
movzx eax, byte [ecx + 0xc]
push eax
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, byte [ecx + 8]
push eax
movzx eax, word [ecx + 6]
push eax
movzx eax, word [ecx + 4]
push eax
push dword [ecx]
lea eax, [esp + 0x454]
push 0x10001864
push 0x27
push eax
call fcn.10008a60
add esp, 0x38
imul edx, dword [esp + 0x20], 0x290
mov ecx, dword [esp + 0x10]
add ecx, edx
mov dword [esp + 0x7c], edx
movzx eax, word [ecx + 0x14]
shr eax, 1
cmp eax, 0x100
ja 0x10013f9e
xor esi, esi
mov word [ecx + eax*2 + 0x16], si
mov ecx, dword [esp + 0x1c]
add ecx, ebx
movzx eax, word [ecx + 4]
shr eax, 1
cmp eax, 0x100
ja 0x10013fa8
xor esi, esi
add edx, 0x16
mov word [ecx + eax*2 + 6], si
mov ecx, dword [esp + 0x10]
add ecx, edx
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10007e30
sub ecx, edx
sar ecx, 1
lea esi, [ecx + 1]
mov dword [esp + 0x40], esi
cmp esi, ecx
jb 0x10014075
mov ecx, dword [esp + 0x1c]
add ecx, 6
add ecx, ebx
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10007e60
sub ecx, edx
sar ecx, 1
lea edi, [ecx + 1]
mov dword [esp + 0x34], edi
cmp edi, ecx
jb 0x10014075
lea ebx, [esp + 0x428]
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x10007e88
mov eax, esi
sub ebx, ecx
mov esi, 2
inc ebx
mul esi
test edx, edx
jb 0x10007eae
ja 0x10014075
cmp eax, 0xffffffff
ja 0x10014075
lea ecx, [eax + 0x2b6]
cmp ecx, 0x2b6
jb 0x10014075
mov eax, edi
mul esi
test edx, edx
jb 0x10007ed7
ja 0x10014075
cmp eax, 0xffffffff
ja 0x10014075
add eax, ecx
cmp eax, ecx
jb 0x10014075
lea esi, [eax + ebx]
cmp esi, eax
jb 0x10014075
call dword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
test eax, eax
je 0x1001406b
push esi
push 0
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_HeapAlloc]
mov edi, eax
mov dword [esp + 0x28], edi
test edi, edi
je 0x10014063
push esi
push 0
push edi
call sub.api_ms_win_core_crt_l1_1_0.dll_memset
mov ecx, dword [esp + 0x44]
lea esi, [edi + 0x178]
mov dword [edi], 0x178
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov eax, dword [ecx + eax]
mov dword [edi + 4], eax
mov dword [edi + 0x48], 0
add ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x218]
mov dword [esi], eax
mov eax, dword [ecx + 0x21c]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x220]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x224]
mov ecx, 2
mov dword [esi + 0xc], eax
add esi, 0x10
mov dword [edi + 0xb8], esi
mov word [esi], cx
add esi, 0x10
mov eax, dword [edi + 0xb8]
mov dword [edi + 0xbc], 0x10
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov ecx, 0x17
mov dword [edi + 0xdc], esi
mov word [esi], cx
add esi, 0x1c
mov eax, dword [edi + 0xdc]
mov dword [edi + 0xe0], 0x1c
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov eax, dword [esp + 0x40]
mov dword [edi + 0x20], esi
add esi, 0x102
mov dword [edi + 0x28], esi
mov edi, dword [esp + 0x10]
add edi, 0x16
mov dword [esp + 0x70], esi
add edi, dword [esp + 0x7c]
test eax, eax
je 0x10008046
cmp eax, 0x7fffffff
ja 0x10013fba
mov ecx, esi
mov edx, eax
mov esi, 0x7ffffffe
sub esi, eax
sub edi, ecx
lea eax, [edx + esi]
test eax, eax
je 0x10008031
movzx eax, word [ecx + edi]
test ax, ax
je 0x10008031
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10008011
jmp 0x10013fb2
test edx, edx
je 0x10013fb2
mov esi, dword [esp + 0x70]
xor eax, eax
mov word [ecx], ax
mov eax, dword [esp + 0x40]
lea ecx, [esi + eax*2]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
mov dword [eax + 0x24], ecx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add edi, 6
add edi, dword [esp + 0x38]
test eax, eax
je 0x100080b5
cmp eax, 0x7fffffff
ja 0x10013fd4
mov edx, eax
mov esi, 0x7ffffffe
sub esi, edx
mov eax, ecx
sub edi, ecx
nop
lea ecx, [edx + esi]
test ecx, ecx
je 0x100080a0
movzx ecx, word [eax + edi]
test cx, cx
je 0x100080a0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x10008080
jmp 0x10013fcc
test edx, edx
je 0x10013fcc
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x28]
mov dword [eax + 0xc], ecx
test ebx, ebx
je 0x10008106
cmp ebx, 0x7fffffff
ja 0x10013fec
mov edx, 0x7ffffffe
lea esi, [esp + 0x428]
sub edx, ebx
sub esi, ecx
nop
lea eax, [ebx + edx]
test eax, eax
je 0x100080fb
mov al, byte [ecx + esi]
test al, al
je 0x100080fb
mov byte [ecx], al
inc ecx
sub ebx, 1
jne 0x100080e0
jmp 0x10013fe6
test ebx, ebx
je 0x10013fe6
mov byte [ecx], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x7c]
movzx eax, word [edi + eax + 0x224]
cmp eax, 8
jae 0x10013ff9
mov ebx, dword [esp + 0x28]
push eax
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 0x14]
add eax, 0x226
add eax, edi
push eax
lea eax, [ebx + 0x2c]
push eax
call sub.api_ms_win_core_crt_l1_1_0.dll_memcpy
mov eax, dword [esp + 0x28]
add esp, 0xc
mov esi, dword [esp + 0x38]
cmp dword [esi + eax + 0x210], 2
je 0x10014003
xor eax, eax
mov edx, dword [ebx + 0x38]
and edx, 0xfffffff7
or edx, eax
mov dword [ebx + 0x38], edx
mov eax, dword [esp + 0x1c]
cmp dword [esi + eax + 0x20c], 4
je 0x1001400d
xor eax, eax
and edx, 0xffffffef
or edx, eax
mov dword [ebx + 0x38], edx
mov eax, dword [esp + 0x10]
mov eax, dword [edi + eax + 0x220]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x1c]
movzx eax, word [esi + eax + 0x208]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x10]
mov eax, dword [edi + eax + 0x218]
mov dword [ebx + 0x44], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + ecx + 0x270]
mov dword [ebx + 0x90], eax
mov eax, dword [edi + ecx + 0x274]
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + ecx + 0x278]
mov dword [ebx + 0x98], eax
mov eax, dword [edi + ecx + 0x27c]
mov dword [ebx + 0x9c], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*8]
mov dword [ebx + 0xb0], eax
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebx + 0xb4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [edi + eax]
mov dword [ebx + 0xc0], eax
mov ecx, dword [esp + 0x10]
add ecx, edi
cmp dword [ebx + 0x44], 5
mov eax, dword [ecx + 4]
mov dword [ebx + 0xc4], eax
mov eax, dword [ecx + 8]
mov dword [ebx + 0xc8], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0xcc], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0xd0], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esi + eax + 0x214]
mov dword [ebx + 0xd4], eax
je 0x10008a42
mov eax, dword [esp + 0x68]
xor ecx, ecx
test eax, eax
je 0x10008288
mov edi, dword [ebx + 0xb0]
mov ebx, dword [ebx + 0xb4]
mov esi, dword [esp + 0x4c]
cmp dword [esi + ecx*8], edi
jne 0x1000827f
cmp dword [esi + ecx*8 + 4], ebx
je 0x1000858a
inc ecx
cmp ecx, eax
jb 0x10008270
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x6c]
xor ecx, ecx
test eax, eax
je 0x100082b6
mov esi, dword [ebx + 0xb0]
mov edi, dword [ebx + 0xb4]
mov edx, dword [esp + 0x5c]
cmp dword [edx + ecx*8], esi
jne 0x100082b1
cmp dword [edx + ecx*8 + 4], edi
je 0x100085dc
inc ecx
cmp ecx, eax
jb 0x100082a2
test dword [esp + 0x14], 0x100
mov esi, dword [esp + 0x18]
jne 0x100089f0
cmp esi, 2
je 0x100089e6
cmp esi, 0x17
je 0x10008a0b
test esi, esi
jne 0x100089f0
test dword [ebx + 0x38], 0x180
jne 0x100089f0
call dword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
test eax, eax
je 0x10008303
push ebx
push 0
push eax
call dword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_HeapFree]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x74]
jb 0x10007d50
mov ebx, dword [esp + 0x14]
and ebx, 8
mov ecx, edi
sete al
movzx eax, al
push eax
mov eax, dword [esp + 0x34]
push esi
mov edx, dword [eax]
call fcn.100074a0
mov edi, eax
test edi, edi
jne 0x1000851b
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
test esi, esi
je 0x100084ea
mov edi, edi
push 0x34c
lea eax, [esp + 0xdc]
push 0
push eax
call sub.api_ms_win_core_crt_l1_1_0.dll_memset
add esp, 0xc
mov byte [esp + 0x26], 0
cmp dword [esi + 0xc], 0
mov byte [esp + 0xe], 0
mov byte [esp + 0xf], 0
mov dword [esp + 0x2c], 0
je 0x1000839f
test ebx, ebx
je 0x10008728
mov ecx, esi
call fcn.10009a60
test al, al
je 0x1000839f
test ebx, ebx
je 0x100087f2
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x9c]
push 0x3c
push 0
push eax
and edi, 0x40
call sub.api_ms_win_core_crt_l1_1_0.dll_memset
lea ecx, [esi + 0x178]
add esp, 0xc
test ecx, ecx
je 0x100084db
movzx eax, byte [ecx + 0xf]
push eax
movzx eax, byte [ecx + 0xe]
push eax
movzx eax, byte [ecx + 0xd]
push eax
movzx eax, byte [ecx + 0xc]
push eax
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, byte [ecx + 8]
push eax
movzx eax, word [ecx + 6]
push eax
movzx eax, word [ecx + 4]
push eax
push dword [ecx]
lea eax, [esp + 0x47c]
push 0x10001900
push 0x27
push eax
call fcn.100097c0
add esp, 0x38
test eax, eax
js 0x100141d0
lea eax, [esp + 0x450]
push eax
push 0x100018d4
push 0x100018c8
lea eax, [esp + 0xe4]
push 0x100
push eax
call fcn.100097c0
add esp, 0x14
test eax, eax
js 0x100084db
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.ntdll.dll_RtlInitUnicodeString]
push 0
push 0
push 0
push 1
push 3
push 0x80
lea eax, [esp + 0x94]
mov dword [esp + 0x9c], 0x18
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x5c]
push 0
push eax
lea eax, [esp + 0xa4]
mov dword [esp + 0xa8], 0
push eax
push 0x100001
lea eax, [esp + 0x60]
mov dword [esp + 0xb8], 0x40
push eax
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
call dword [sym.imp.ntdll.dll_NtCreateFile]
test eax, eax
jns 0x10008664
mov esi, dword [esi + 8]
test esi, esi
jne 0x10008350
mov eax, dword [esp + 0x30]
test byte [esp + 0x14], 1
mov ebx, dword [esp + 0x18]
je 0x10008872
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
test al, 2
je 0x10008944
test al, 4
je 0x10008995
test al, 0x90
jne 0x100088bf
xor edi, edi
cmp byte [esp + 0x27], 0
jne 0x10008a36
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x1000853f
push dword [esp + 0x60]
push 0
push dword [esp + 0x6c]
push eax
call dword [sym.imp.NSI.dll_NsiFreeTable]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x10008558
push dword [esp + 0x50]
push 0
push dword [esp + 0x5c]
push eax
call dword [sym.imp.NSI.dll_NsiFreeTable]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10008571
push dword [esp + 0x1c]
push dword [esp + 0x14]
push 0
push eax
call dword [sym.imp.NSI.dll_NsiFreeTable]
mov ecx, dword [esp + 0x4a4]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10012ae0
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [esp + 0x28]
imul esi, ecx, 0xe8
shl ecx, 5
add ecx, dword [esp + 0x50]
add esi, dword [esp + 0x54]
mov eax, dword [ecx + 8]
mov dword [ebx + 0xd8], eax
cmp dword [ecx + 8], 0xe
je 0x10014038
or edx, 0x80
lea edi, [ebx + 0x4c]
mov dword [ebx + 0x38], edx
mov ecx, 0x10
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0xa8], eax
mov eax, dword [esi + 0x78]
add esi, 0x38
mov dword [ebx + 0x3c], eax
rep movsd dword es:[edi], dword [esi]
jmp 0x10008288
imul esi, ecx, 0xe8
shl ecx, 5
add ecx, dword [esp + 0x60]
add esi, dword [esp + 0x64]
mov eax, dword [ecx + 8]
mov dword [ebx + 0xd8], eax
cmp dword [ecx + 8], 0xe
je 0x10014043
mov eax, 0x10001898
cmp eax, 0x100018b0
je 0x1001404e
or dword [ebx + 0x38], 0x100
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0xac], eax
movzx edx, byte [esi + 0xb]
shl edx, 5
xor edx, dword [ebx + 0x38]
and edx, 0x20
xor edx, dword [ebx + 0x38]
mov dword [ebx + 0x38], edx
movzx eax, byte [esi + 0xa]
shl eax, 9
xor eax, edx
and eax, 0x200
xor eax, edx
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x78]
lea edi, [ebx + 0x4c]
add esi, 0x38
mov dword [ebx + 0x3c], eax
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
jmp 0x100082b6
push 0x3c
lea eax, [esp + 0xa0]
push eax
push 0
push 0
push 0x21009a
lea eax, [esp + 0x58]
push eax
push 0
push 0
push 0
push dword [esp + 0x5c]
call dword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
mov dword [esp + 0x34], eax
cmp eax, 0x103
je 0x100141f6
push dword [esp + 0x38]
call dword [sym.imp.ntdll.dll_NtClose]
cmp dword [esp + 0x34], 0
jl 0x100084db
movzx edx, word [esp + 0xcc]
add edx, 2
cmp edx, 0xc
ja 0x1001421d
xor ecx, ecx
test edx, edx
je 0x100086ee
lea ebx, [ebx]
mov eax, dword [esp + ecx*4 + 0x9c]
bswap eax
mov dword [esp + ecx*4 + 0x9c], eax
cmp eax, 0x7f
je 0x100086ee
test eax, eax
je 0x100086ee
inc ecx
cmp ecx, edx
jb 0x100086d0
movzx eax, byte [esp + 0xd4]
shl eax, 6
xor eax, dword [esi + 0x38]
and eax, 0x40
xor dword [esi + 0x38], eax
test edi, edi
je 0x100084db
push ecx
lea edx, [esp + 0xa0]
mov ecx, esi
call fcn.1000b43e
mov edi, eax
test edi, edi
je 0x100084db
jmp 0x1000851b
mov eax, dword [esp + 0x18]
cmp eax, 2
je 0x1000878b
mov ecx, esi
call fcn.10005b0b
lea edx, [esp + 0xd8]
mov byte [esp + 0xf], al
mov ecx, esi
call fcn.10005ab9
mov edi, eax
test edi, edi
jne 0x1000851b
mov edx, esi
mov ecx, 0x10001898
cmp dword [esi + 0x170], eax
jne 0x1000890d
call fcn.100060e0
mov edi, eax
cmp edi, 0xe8
jne 0x1001407f
cmp dword [esi + 0x170], 0
mov eax, dword [esp + 0x18]
jne 0x1001408c
cmp eax, 0x17
je 0x100087c0
cmp dword [esi + 0x170], 0
jne 0x100087c0
mov edx, esi
mov ecx, 0x100018b0
call fcn.100060e0
mov edi, eax
cmp edi, 0xe8
jne 0x100140aa
cmp dword [esi + 0x170], 0
jne 0x100140b7
mov al, byte [esp + 0xe]
cmp dword [esp + 0x18], 2
je 0x1000838c
mov ecx, dword [esi + 0x170]
test ecx, ecx
jne 0x10008934
xor edi, edi
cmp word [esp + 0xda], di
jbe 0x1000838c
jmp 0x100140cb
mov eax, dword [esp + 0x18]
cmp eax, 2
je 0x1000882c
cmp word [esp + 0xd8], 0
ja 0x1001419e
xor eax, eax
lea ecx, [esp + 0x26]
mov edx, esi
push ecx
push eax
mov ecx, 0x10001898
call fcn.10008d30
mov edi, eax
test edi, edi
jne 0x1000851b
mov eax, dword [esp + 0x18]
cmp eax, 0x17
je 0x1000884f
push 0
push 0
mov edx, esi
mov ecx, 0x100018b0
call fcn.10008d30
mov edi, eax
test edi, edi
jne 0x1000851b
mov eax, dword [esp + 0x18]
cmp eax, 2
je 0x1000839f
cmp dword [esi + 0x1c], 0
je 0x100141b3
cmp byte [esp + 0xf], 0
je 0x1000839f
jmp 0x100141a8
cmp ebx, 2
je 0x10008892
push dword [eax]
mov edx, 0x18
mov ecx, 0x10001898
call fcn.10007240
mov edi, eax
test edi, edi
jne 0x1000851b
mov esi, dword [esp + 0x30]
cmp ebx, 0x17
je 0x100084fd
push dword [esi]
mov edx, 0x10
mov ecx, 0x100018b0
call fcn.10007240
mov edi, eax
test edi, edi
je 0x100084fd
jmp 0x10014231
cmp ebx, 2
je 0x100088e0
push eax
push dword [esi]
mov edx, 0x48
mov ecx, 0x10001898
call fcn.10005dd0
mov edi, eax
test edi, edi
jne 0x1000851b
cmp ebx, 0x17
je 0x10008519
push dword [esp + 0x14]
mov edx, 0x30
mov ecx, 0x100018b0
push dword [esi]
call fcn.10005dd0
mov edi, eax
test edi, edi
je 0x10008519
jmp 0x1001427f
lea eax, [esp + 0x2c]
push eax
call fcn.10006f50
test eax, eax
jne 0x10014096
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x100140a0
mov eax, dword [esp + 0x18]
jmp 0x1000878b
cmp byte [esp + 0xf], 0
je 0x1000838c
jmp 0x100140be
cmp ebx, 2
je 0x10008968
push dword [esi]
mov edx, 0x18
mov ecx, 0x10001898
call fcn.1000b350
mov edi, eax
test edi, edi
jne 0x1000851b
mov eax, dword [esp + 0x14]
cmp ebx, 0x17
je 0x10008509
push dword [esi]
mov edx, 0x10
mov ecx, 0x100018b0
call fcn.1000b350
mov edi, eax
test edi, edi
jne 0x1001424b
mov eax, dword [esp + 0x14]
jmp 0x10008509
cmp ebx, 2
je 0x100089b9
push dword [esi]
mov edx, 0x18
mov ecx, 0x10001898
call fcn.100072e0
mov edi, eax
test edi, edi
jne 0x1000851b
mov eax, dword [esp + 0x14]
cmp ebx, 0x17
je 0x10008511
push dword [esi]
mov edx, 0x10
mov ecx, 0x100018b0
call fcn.100072e0
mov edi, eax
test edi, edi
jne 0x10014265
mov eax, dword [esp + 0x14]
jmp 0x10008511
test byte [ebx + 0x38], 0x80
je 0x100082ef
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
inc edi
mov dword [esp + 0x3c], edi
mov dword [eax], ebx
lea eax, [ebx + 8]
mov dword [esp + 0x2c], eax
jmp 0x10008307
test dword [ebx + 0x38], 0x100
jmp 0x100089ea
cmp eax, 0xffffffff
je 0x10007c78
push 0xffffffffffffffff
call sym.IPHLPAPI.DLL_SetCurrentThreadCompartmentScope
test eax, eax
jne 0x10007c78
mov byte [esp + 0x27], 1
jmp 0x10007c78
push 0
call sym.IPHLPAPI.DLL_SetCurrentThreadCompartmentScope
jmp 0x10008526
mov eax, dword [esp + 0x10]
mov eax, dword [edi + eax + 0x21c]
and al, 0xb
cmp al, 8
jne 0x10008256
jmp 0x10014017
xor eax, eax
mov dword [esp + 0x78], 1
jmp 0x10007c66
cmp edi, 0x32
jne 0x1000851b
jmp 0x10007cf0
cmp edi, 0x32
jne 0x1000851b
jmp 0x10007d32
mov eax, 0x100
jmp 0x10007df8
mov eax, 0x100
jmp 0x10007e16
sub ecx, 2
jmp 0x10008039
test eax, eax
je 0x10008046
xor ecx, ecx
mov word [esi], cx
jmp 0x10008046
sub eax, 2
jmp 0x100080a8
test eax, eax
je 0x100080b5
xor edx, edx
mov word [ecx], dx
jmp 0x100080b5
dec ecx
jmp 0x10008103
test ebx, ebx
je 0x10008106
jmp 0x10008103
mov eax, 8
jmp 0x1000811f
mov eax, 8
jmp 0x10008157
mov eax, 0x10
jmp 0x10008176
mov eax, dword [esp + 0x1c]
test dword [esi + eax + 0x22c], 0x100
je 0x10008256
mov dword [ebx + 0x44], 1
jmp 0x10008256
mov eax, dword [ecx + 4]
mov dword [ebx + 0x40], eax
jmp 0x100085b2
mov eax, dword [ecx + 4]
mov dword [ebx + 0x40], eax
jmp 0x10008600
or dword [ebx + 0x38], 0x80
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0xa8], eax
jmp 0x1000864c
push 8
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_SetLastError]
mov edi, 8
jmp 0x1000851b
mov edi, 0x216
jmp 0x1000851b
test edi, edi
jne 0x1000851b
jmp 0x1000877a
mov byte [esp + 0xe], 1
jmp 0x1000878b
mov byte [esp + 0xe], 1
jmp 0x1000891f
call fcn.1000bd1b
jmp 0x1000892b
test edi, edi
jne 0x1000851b
jmp 0x100087b3
mov al, 1
jmp 0x100087c4
test al, al
jne 0x1000838c
jmp 0x100087dd
test ecx, ecx
je 0x100140df
mov edi, ecx
mov eax, dword [edi]
test eax, eax
je 0x100140df
mov edi, eax
mov eax, dword [edi]
test eax, eax
jne 0x100140d7
xor eax, eax
mov dword [esp + 0x28], 0
cmp ax, word [esp + 0xda]
jae 0x1000838c
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x11c]
mov dword [esp + 0x20], eax
test eax, eax
je 0x10014177
push 0x100
push eax
call dword [sym.imp.api_ms_win_core_crt_l1_1_0.dll_strnlen]
add esp, 8
test eax, eax
je 0x1001416f
cmp eax, 0x100
je 0x1001416f
mov ecx, 0x204
call fcn.1000563a
mov dword [esp + 0x2c], eax
test eax, eax
je 0x10014227
push 0x100
push dword [esp + 0x24]
lea ecx, [eax + 4]
mov dword [eax], 0
push ecx
call dword [sym.imp.ntdll.dll_mbstowcs]
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp dword [esi + 0x170], 0
jne 0x1001416b
mov dword [esi + 0x170], eax
jmp 0x1001416d
mov dword [edi], eax
mov edi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
add eax, 0x104
inc ecx
mov dword [esp + 0x20], eax
movzx eax, word [esp + 0xda]
cmp ecx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x20]
jb 0x10014106
jmp 0x1000838c
mov eax, 1
jmp 0x1000880c
cmp byte [esp + 0x26], 0
jne 0x1000839f
mov edx, esi
lea ecx, [esp + 0xd8]
call fcn.1001d61e
mov edi, eax
test edi, edi
jne 0x1000851b
jmp 0x1000839f
cmp eax, 0x80070057
je 0x100084db
cmp eax, 0x8007007a
je 0x100084db
movzx eax, ax
test eax, eax
jne 0x100084db
jmp 0x1000841b
push 0
push 1
push dword [esp + 0x40]
call dword [sym.imp.ntdll.dll_NtWaitForSingleObject]
mov dword [esp + 0x34], eax
test eax, eax
js 0x1000869b
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], eax
jmp 0x1000869b
mov edx, 0xc
jmp 0x100086c4
mov edi, 0xe
jmp 0x1000851b
cmp edi, 0x490
je 0x100084fd
cmp edi, 0x32
jne 0x1000851b
jmp 0x100084fd
cmp edi, 0x490
je 0x1000898c
cmp edi, 0x32
jne 0x1000851b
jmp 0x1000898c
cmp edi, 0x490
je 0x100089dd
cmp edi, 0x32
jne 0x1000851b
jmp 0x100089dd
cmp edi, 0x490
je 0x10008519
cmp edi, 0x32
jne 0x1000851b
jmp 0x10008519