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

Disassembly:
push ebp
push edi
push esi
mov esi, eax
xor eax, eax
push ebx
mov ebx, edx
sub esp, 0xcc
mov dword [esp + 0x20], ecx
lea edi, [esp + 0x44]
mov ecx, 0x1f
rep stosd dword es:[edi], eax
mov edi, dword [edx + 0x2c]
mov dword [esp + 0x3c], 0
test edi, edi
jns 0x703b6980
mov eax, dword [esi + 0x2c]
test eax, eax
js 0x703b6938
mov edx, dword [esi + 0x18]
mov edi, ebx
lea eax, [edx + eax*2]
mov edx, dword [ebx + 0x5c]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x30]
test edx, edx
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x68], eax
js 0x703b6955
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x40]
test edx, edx
js 0x703b6970
mov ecx, dword [edi + 0x18]
test eax, eax
jne 0x703b6bb0
lea edx, [edx + eax + 1]
not eax
add eax, dword [edi + 0x3c]
lea edx, [ecx + edx*2]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x44]
test eax, eax
js 0x703b67b1
mov edx, dword [edi + 0x18]
lea ebp, [esp + 0x40]
xor ecx, ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x40], eax
lea edx, [esp + 0x44]
mov eax, ebp
call fcn.703b07f0
mov eax, dword [edi + 0x58]
test eax, eax
jne 0x703b6a90
mov eax, dword [ebx + 0x68]
cmp edi, ebx
je 0x703b67d7
cmp eax, 0xffffffff
je 0x703b67d7
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x703b6ab0
mov eax, dword [edi + 0x68]
test eax, eax
js 0x703b6be8
mov edx, dword [edi + 0x18]
lea eax, [edx + eax*2]
mov dword [esp + 0xa8], eax
mov eax, dword [edi + 0x6c]
mov dword [esp + 0xac], eax
mov eax, dword [ebx + 0x74]
test eax, eax
js 0x703b6c10
mov edi, ebx
mov edx, dword [edi + 0x18]
lea eax, [edx + eax*2]
mov dword [esp + 0xb0], eax
mov eax, dword [edi + 0x78]
mov dword [esp + 0xb4], eax
mov esi, dword [esp + 0x20]
xor edi, edi
and esi, 0x8000000
mov eax, dword [ebx + 0x7c]
test eax, eax
js 0x703b684a
mov edx, dword [ebx + 0x18]
lea eax, [edx + eax*2]
mov dword [esp + 0xb8], eax
mov eax, dword [ebx + 0x80]
mov dword [esp + 0xbc], eax
mov ebx, dword [esp + 0x20]
xor eax, eax
test esi, esi
setne al
mov edx, dword [esp + 0x44]
mov ebp, eax
or eax, 2
and ebx, 0x10000
cmovne ebp, eax
lea eax, [esp + 0x44]
mov ecx, ebp
call fcn.703ae3e0
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.oleaut32.dll_SysAllocStringLen]
sub esp, 8
mov edx, eax
mov dword [esp + 0x44], eax
test eax, eax
je 0x703b701f
lea eax, [esp + 0x44]
mov ecx, ebp
call fcn.703ae3e0
lea eax, [esp + 0x40]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.703b5200
test eax, eax
mov ebp, eax
js 0x703b6c20
mov ecx, dword [esp + 0x3c]
test esi, esi
je 0x703b68cc
or ecx, 0x10
mov dword [esp + 0x3c], ecx
test ebx, ebx
je 0x703b68d7
or ecx, 0x20
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov dword [edx + 0x14], eax
lea eax, [esp + 0x44]
call fcn.703b4540
test eax, eax
mov ebp, eax
js 0x703b6a60
mov ecx, dword [esp + 0x40]
test esi, esi
je 0x703b6901
or dword [ecx + 0x24], 2
xor ebp, ebp
lea eax, [esp + 0x3c]
call fcn.703a8f70
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0xe0]
mov dword [eax], ecx
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
add esp, 0xcc
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebx + 0x5c]
mov dword [esp + 0x48], 1
mov edi, ebx
mov dword [esp + 0x3c], 1
test edx, edx
jns 0x703b6762
mov eax, dword [esi + 0x5c]
test eax, eax
js 0x703b6bd0
mov edi, esi
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x40]
test edx, edx
jns 0x703b6770
test eax, eax
js 0x703b678f
mov ecx, dword [edi + 0x18]
jmp 0x703b677b
mov eax, dword [edx + 0x14]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysAllocString]
sub esp, 4
mov dword [esp + 0x44], eax
test eax, eax
je 0x703b7028
lea eax, [esp + 0x44]
mov edx, 4
call fcn.703b20f0
lea eax, [esp + 0x40]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.703b5200
test eax, eax
mov ebp, eax
js 0x703b6a6f
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x703b6a17
mov eax, dword [esp + 0x20]
and eax, 0x8000000
mov dword [esp + 0xe4], eax
je 0x703b69f7
mov dword [esp + 0x3c], 0x10
mov dword [esp + 0xe4], 0x10
test dword [esp + 0x20], 0x2000000
je 0x703b6a17
or dword [esp + 0xe4], 0x80
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0xe4]
mov dword [edx + 0x14], eax
lea eax, [esp + 0x44]
call fcn.703b4540
test eax, eax
mov ebp, eax
js 0x703b6a60
lea eax, [esp + 0x3c]
xor ebp, ebp
call fcn.703a8f70
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0xe0]
mov dword [eax + 0x28], edx
mov dword [esi], eax
jmp 0x703b6925
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov eax, dword [esp + 0xe0]
mov dword [eax], 0
add esp, 0xcc
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x98], 1
mov eax, dword [edi + 0x54]
mov dword [esp + 0xa4], eax
jmp 0x703b67bc
mov edx, dword [ebx + 0x18]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x68]
cmp word [eax], 0x2f
mov dword [esp + 0x28], eax
jne 0x703b6c50
cmp edx, 0xa
je 0x703b6ca8
cmp dword [esi + 0x34], 9
je 0x703b6eb8
mov esi, dword [esp + 0x24]
lea eax, [esi + esi + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
test eax, eax
je 0x703b704d
mov edi, eax
mov ecx, esi
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
add edx, edx
mov dword [esp + 8], edx
mov dword [esp + 4], esi
call sub.ucrtbase.dll_memcpy
mov esi, dword [esp + 0x20]
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
and esi, 0x8000000
mov word [edi + ecx*2], ax
mov eax, esi
or eax, edx
jne 0x703b6b58
mov dword [esp + 0x24], ecx
mov eax, edi
xor ebp, ebp
mov edx, ecx
call fcn.703ad2b0
cmp dword [esp + 0x24], eax
jne 0x703b6f40
mov edx, dword [esp + 0x4c]
xor esi, esi
lea esi, [esi]
nop
mov eax, dword [ebx + 0x74]
test eax, eax
js 0x703b6b76
mov ecx, dword [ebx + 0x18]
lea eax, [ecx + eax*2]
mov dword [esp + 0xb0], eax
mov eax, dword [ebx + 0x78]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x40], edi
lea ebp, [esp + 0x40]
test edx, edx
jne 0x703b6e18
lea edx, [esp + 0x44]
xor ecx, ecx
mov eax, ebp
call fcn.703ad900
test eax, eax
jne 0x703b6829
mov dword [esp], edi
mov ebp, 0x80070057
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x703b6a6f
lea ebp, [ecx + edx*2]
mov dword [esp + 0x6c], ebp
js 0x703b6e08
mov dword [esp + 0x70], eax
jmp 0x703b677b
cmp dword [esi + 0x34], 9
je 0x703b6bde
mov dword [esp + 0x4c], 1
mov edi, esi
jmp 0x703b67bc
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x703b67f9
mov dword [esp + 0xa8], 0x703e29e0
mov dword [esp + 0xac], 1
jmp 0x703b67f9
mov eax, dword [edi + 0x74]
test eax, eax
js 0x703b681d
jmp 0x703b6806
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysFreeString]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [esp + 0xe0]
mov dword [eax], 0
jmp 0x703b6a7c
mov ebp, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
mov eax, dword [esi + 0x18]
lea esi, [eax + ecx*2]
test ebp, ebp
je 0x703b6cff
lea eax, [esi + ebp*2 - 2]
mov ecx, eax
cmp eax, esi
jae 0x703b6c7f
jmp 0x703b6fc4
sub ecx, 2
cmp ecx, esi
jb 0x703b6c89
cmp word [ecx], 0x2f
jne 0x703b6c78
cmp ecx, esi
jae 0x703b6cf8
cmp edx, 9
jne 0x703b6cf8
jmp 0x703b6c97
sub eax, 2
cmp eax, esi
jb 0x703b6c9d
cmp word [eax], 0x5c
jne 0x703b6c90
mov ecx, eax
jmp 0x703b6cf8
mov ebp, dword [esi + 0x6c]
mov edx, dword [esi + 0x68]
mov eax, dword [esi + 0x18]
lea esi, [eax + edx*2]
test ebp, ebp
je 0x703b6cff
lea edi, [ebp + ebp - 2]
mov ecx, esi
lea edx, [esi + edi]
cmp esi, edx
jb 0x703b6cdb
jmp 0x703b7014
add ecx, 2
cmp ecx, edx
jae 0x703b6f8c
cmp word [ecx], 0x3a
jne 0x703b6cd0
cmp word [ecx + 2], 0x3a
jne 0x703b6cd0
add ecx, 2
cmp ecx, edx
je 0x703b6f92
lea esi, [esi]
nop
lea ebp, [ecx + 2]
sub ebp, esi
sar ebp, 1
mov eax, dword [esp + 0x24]
lea eax, [eax + ebp + 1]
add eax, eax
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov edi, eax
test eax, eax
je 0x703b704d
add ebp, ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
add ebp, edi
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
mov esi, dword [esp + 0x24]
mov dword [esp], ebp
mov eax, dword [esp + 0x28]
add esi, esi
mov dword [esp + 8], esi
add ebp, esi
mov dword [esp + 4], eax
call sub.ucrtbase.dll_memcpy
xor eax, eax
mov word [ebp], ax
sub ebp, edi
mov ecx, ebp
sar ecx, 1
mov dword [esp + 0x24], ecx
test byte [0x703d8490], 8
jne 0x703b6e40
cmp ebp, 4
jbe 0x703b6de0
cmp dword [esp + 0x68], 9
jne 0x703b6de0
mov ebp, dword [esp + 0x7c]
test ebp, ebp
jne 0x703b6de0
movzx eax, word [edi]
cmp ax, 0x2f
je 0x703b6fde
and eax, 0xffffffdf
sub eax, 0x41
cmp ax, 0x19
ja 0x703b6de0
movzx edx, word [edi + 2]
cmp dx, 0x3a
sete al
cmp dx, 0x7c
sete dl
or eax, edx
movzx ebp, al
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
and esi, 0x8000000
mov eax, esi
or eax, edx
jne 0x703b6b58
test ebp, ebp
je 0x703b703d
add ebp, 1
lea eax, [edi + ebp*2]
sub ecx, ebp
jmp 0x703b6b3c
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
and esi, 0x8000000
mov eax, esi
or eax, edx
jne 0x703b6b58
mov eax, edi
xor ebp, ebp
jmp 0x703b6b3c
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x70], eax
jmp 0x703b678f
lea edx, [esp + 0x44]
xor ecx, ecx
mov eax, ebp
call fcn.703ad0a0
test eax, eax
je 0x703b6b9b
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x703b6829
jmp 0x703b6b86
mov eax, edi
shr eax, 0x10
test eax, eax
je 0x703b6f6f
mov dword [esp + 4], ecx
mov dword [esp + 0x28], ecx
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x703e26c7
test edx, edx
mov ecx, dword [esp + 0x28]
jne 0x703b6e7d
mov edx, ecx
mov eax, edi
call fcn.703a9560
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.ret__s_n
mov dword [esp + 8], str.merge_paths
mov dword [esp + 4], 0x703d8490
mov dword [esp], 3
mov dword [esp + 0x28], ecx
call fcn.703a9840
mov ecx, dword [esp + 0x28]
jmp 0x703b6d69
cmp dword [esi + 0x6c], 3
jbe 0x703b6adb
mov eax, dword [esi + 0x68]
mov edx, dword [esi + 0x18]
add eax, eax
lea esi, [edx + eax]
cmp word [esi], 0x2f
jne 0x703b6adb
lea eax, [edx + eax + 2]
movzx edx, word [eax]
and edx, 0xffffffdf
sub edx, 0x41
cmp dx, 0x19
ja 0x703b6adb
movzx eax, word [eax + 2]
cmp ax, 0x3a
je 0x703b6f02
cmp ax, 0x7c
jne 0x703b6adb
mov eax, dword [esp + 0x24]
lea ecx, [eax + 3]
add eax, 4
add eax, eax
mov dword [esp + 0x2c], ecx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov ecx, dword [esp + 0x2c]
test eax, eax
mov edi, eax
je 0x703b704d
mov eax, dword [esi]
mov dword [edi], eax
movzx eax, word [esi + 4]
mov word [edi + 4], ax
lea eax, [edi + 6]
jmp 0x703b6af8
lea esi, [ebp + eax + 1]
mov dword [esp], edi
add esi, esi
mov dword [esp + 4], esi
call dword [sym.imp.ucrtbase.dll_realloc]
test eax, eax
je 0x703b7044
xor edi, edi
mov edx, dword [esp + 0x4c]
mov word [eax + esi - 2], di
mov edi, eax
xor esi, esi
jmp 0x703b6b58
mov dword [esp + 4], edi
mov dword [esp], 0x703e26d1
mov dword [esp + 0x28], ecx
call fcn.703a9200
mov ecx, dword [esp + 0x28]
jmp 0x703b6e7d
jne 0x703b6cf8
xor ebp, ebp
cmp word [esi], 0x40
jne 0x703b6cff
lea eax, [esi + edi + 2]
cmp esi, eax
jae 0x703b6cff
mov ecx, esi
cmp word [ecx], 0x3a
je 0x703b6cf8
add ecx, 2
cmp ecx, eax
jb 0x703b6fac
xor ebp, ebp
jmp 0x703b6cff
cmp edx, 9
je 0x703b6cf8
xor ebp, ebp
test eax, eax
je 0x703b6cff
mov ecx, eax
jmp 0x703b6cf8
movzx eax, word [edi + 2]
and eax, 0xffffffdf
sub eax, 0x41
cmp ax, 0x19
ja 0x703b6de0
movzx eax, word [edi + 4]
cmp ax, 0x3a
sete dl
cmp ax, 0x7c
sete al
mov ebp, edx
or ebp, eax
mov eax, ebp
movzx ebp, al
add ebp, ebp
jmp 0x703b6dad
mov eax, esi
cmp edx, esi
jne 0x703b6fcd
jmp 0x703b6f92
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [esp + 0xe0]
xor edx, edx
mov ebp, 0x8007000e
mov dword [eax], edx
jmp 0x703b6a7c
mov eax, edi
jmp 0x703b6b3c
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
mov ebp, 0x8007000e
jmp 0x703b6a6f