Function at 0x1f004730
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x1c]
push edi
mov edi, dword [esp + 0x1c]
xor eax, eax
mov word [ebx], ax
test edi, edi
jne 0x1f00474e
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret
cmp word [edi], ax
je 0x1f004746
push esi
push edi
call fcn.1f0046e0
add esp, 4
test eax, eax
jne 0x1f004781
mov esi, dword [esp + 0x28]
push esi
push edi
push ebx
call fcn.1f03ea07
add esp, 0xc
xor ecx, ecx
mov word [ebx + esi*2 - 2], cx
pop esi
pop edi
lea eax, [ecx + 1]
pop ebx
add esp, 0x10
ret
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004786
sub eax, edx
sar eax, 1
lea esi, [eax + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1f03e9a2
mov ebx, eax
mov edx, ebx
add esp, 4
mov dword [esp + 0x10], ebx
mov eax, edi
sub edx, edi
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f0047c0
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
push ebp
neg ecx
or ecx, eax
push ecx
call fcn.1f03e9a2
mov ebp, eax
mov eax, edi
mov edx, ebp
add esp, 4
mov dword [esp + 0x18], ebp
sub edx, eax
jmp 0x1f004800
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f004800
nop
push ebx
call fcn.1f004680
add esp, 4
test eax, eax
je 0x1f004a6c
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004826
sub eax, edx
lea ecx, [esp + 0x10]
sar eax, 1
push ecx
lea eax, [ebp + eax*2]
push ebx
mov dword [esp + 0x24], eax
call fcn.1f004630
add esp, 8
test eax, eax
je 0x1f004ab0
mov edx, dword [esp + 0x10]
push edx
call fcn.1f004680
add esp, 4
test eax, eax
je 0x1f0048b4
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x10]
push eax
push edi
call fcn.1f004630
mov esi, eax
add esp, 8
test esi, esi
je 0x1f004892
mov ecx, dword [esp + 0x10]
push ecx
push edi
call fcn.1f03ecf3
add esp, 8
mov esi, eax
neg esi
sbb esi, esi
neg esi
push edi
call fcn.1f03e97c
add esp, 4
test esi, esi
je 0x1f004ae4
mov edx, dword [esp + 0x10]
push edx
call fcn.1f004680
add esp, 4
test eax, eax
jne 0x1f004864
mov eax, dword [esp + 0x10]
push eax
call fcn.1f034370
add esp, 4
test eax, eax
je 0x1f004959
push 0x2000
call fcn.1f03e9a2
add esp, 4
mov edi, eax
push edi
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push ebx
call fcn.1f03e505
mov ebx, eax
push ebx
call fcn.1f0343b0
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x2000
call fcn.1f03e9a2
mov ecx, dword [esp + 0x14]
add esp, 4
push 0
mov ebp, eax
push ebp
push 0x1000
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov esi, eax
neg esi
sbb esi, esi
push ebx
neg esi
call fcn.1f03e3e5
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push edi
call fcn.1f03e97c
mov edx, dword [esp + 0x14]
push edx
call fcn.1f03e97c
add esp, 8
mov dword [esp + 0x10], ebp
test esi, esi
je 0x1f004b22
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004960
sub eax, edx
sar eax, 1
mov ebp, eax
mov eax, dword [esp + 0x10]
lea edx, [eax + 2]
jmp 0x1f004980
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004980
sub eax, edx
sar eax, 1
mov edi, eax
xor ecx, ecx
lea eax, [edi + ebp + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1f03e9a2
mov ecx, dword [esp + 0x14]
mov esi, eax
add esp, 4
mov edx, esi
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x1f0049b6
test ebp, ebp
jbe 0x1f0049ef
mov eax, dword [esp + 0x1c]
lea ecx, [edi + edi]
sub ecx, eax
lea edx, [ecx + esi]
jmp 0x1f0049e0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f0049e0
mov edx, dword [esp + 0x10]
push edx
call fcn.1f03e97c
push ebx
call fcn.1f03e97c
mov eax, dword [esp + 0x20]
push eax
mov dword [esp + 0x20], esi
call fcn.1f03e97c
mov eax, esi
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004a15
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1f03e9a2
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
mov eax, esi
sub edx, esi
jmp 0x1f004a50
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f004a50
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
jmp 0x1f004810
push ebx
call fcn.1f0343b0
add esp, 4
test eax, eax
jne 0x1f004810
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push esi
push ebp
push edi
call fcn.1f03ea07
xor edx, edx
push ebx
mov word [edi + esi*2 - 2], dx
call fcn.1f03e97c
push ebp
call fcn.1f03e97c
add esp, 0x14
pop ebp
pop esi
pop edi
mov eax, 1
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push esi
push eax
push edi
call fcn.1f03ea07
xor ecx, ecx
push ebx
mov word [edi + esi*2 - 2], cx
call fcn.1f03e97c
push ebp
call fcn.1f03e97c
add esp, 0x14
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push esi
push edx
push eax
call fcn.1f03ea07
mov edx, dword [esp + 0x34]
xor ecx, ecx
push edi
mov word [edx + esi*2 - 2], cx
call fcn.1f03e97c
push ebx
call fcn.1f03e97c
push ebp
call fcn.1f03e97c
add esp, 0x18
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push esi
push eax
push edi
call fcn.1f03ea07
mov edx, dword [esp + 0x1c]
xor ecx, ecx
push edx
mov word [edi + esi*2 - 2], cx
call fcn.1f03e97c
mov eax, dword [esp + 0x24]
push eax
call fcn.1f03e97c
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1f03e97c
add esp, 0x18
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret