Function at 0x4706d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x21c
mov eax, dword [0x597010]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov bl, 1
cmp dword [0x59d914], 0
jne 0x470c16
mov edi, dword [0x59d90c]
test edi, edi
je 0x470711
test byte [0x599b48], 1
jne 0x470928
jmp 0x470c16
push 0xc
call fcn.005283f4
add esp, 4
mov esi, eax
lea edi, [ebp - 0x218]
push 0x208
push 0xff
push edi
call fcn.0052c210
add esp, 0xc
push 0x104
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], 0xffffffff
push edi
call fcn.00542c14
add esp, 4
cmp eax, 0x7ffffff0
jae 0x470c2d
mov ebx, eax
cmp eax, 4
mov dword [ebp - 0x21c], esi
ja 0x470780
mov byte [esi + 0xb], bl
mov edi, esi
jmp 0x4707ae
mov esi, ebx
or esi, 7
inc esi
js 0x470c32
lea eax, [esi + esi]
push eax
call fcn.005283f4
add esp, 4
mov edi, eax
mov eax, dword [ebp - 0x21c]
mov dword [eax], edi
or esi, 0x80000000
mov dword [eax + 8], esi
mov dword [eax + 4], ebx
lea eax, [edi + ebx*2]
lea ecx, [ebp - 0x218]
cmp eax, ecx
setbe al
cmp edi, ecx
ja 0x4707c8
test al, al
je 0x470c37
mov eax, ebx
add eax, ebx
push eax
push ecx
push edi
call fcn.0052bc90
add esp, 0xc
mov word [edi + ebx*2], 0
mov esi, dword [ebp - 0x21c]
movzx ecx, byte [esi + 0xb]
test cl, cl
mov eax, dword [esi]
mov edx, dword [esi + 4]
movzx edi, cl
mov ebx, edi
cmovs ebx, edx
cmovs esi, eax
test ebx, ebx
je 0x470867
mov dword [ebp - 0x228], eax
add ebx, ebx
nop word cs:[eax + eax]
test ebx, ebx
je 0x470867
lea eax, [ebx - 2]
cmp word [esi + ebx - 2], 0x5c
mov ebx, eax
jne 0x470810
cmp eax, 0xfffffffe
mov bl, 1
je 0x470869
mov esi, eax
sar esi, 1
mov dword [ebp - 0x224], esi
inc esi
mov dword [ebp - 0x220], esi
test cl, cl
js 0x4708af
mov ecx, dword [ebp - 0x224]
cmp ecx, edi
jae 0x470c2d
cmp eax, 8
mov edi, dword [ebp - 0x21c]
jae 0x470c4c
mov eax, dword [ebp - 0x220]
mov byte [edi + 0xb], al
mov eax, edi
jmp 0x4708d2
mov bl, 1
mov edi, dword [ebp - 0x21c]
test cl, cl
js 0x4708e1
movzx eax, cl
mov edx, 4
cmp cl, 5
jb 0x4708fa
lea ecx, [edi + eax*2]
cmp ecx, str.debug.log
ja 0x47089c
lea eax, [edi + eax*2]
add eax, 0x12
cmp eax, str.debug.log
ja 0x470c3a
movups xmm0, xmmword [str.debug.log]
movups xmmword [ecx], xmm0
mov word [ecx + 0x10], 0x67
int3
mov ecx, dword [ebp - 0x224]
cmp edx, ecx
jbe 0x470c2d
mov edi, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x220]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x228]
mov word [eax + ecx*2 + 2], 0
movzx ecx, byte [edi + 0xb]
test cl, cl
jns 0x470873
mov edx, 0x7fffffff
and edx, dword [edi + 8]
dec edx
mov eax, dword [edi + 4]
mov ecx, edx
sub ecx, eax
cmp ecx, 9
jae 0x4709d2
mov esi, eax
sub esi, edx
add esi, 9
mov ecx, edi
push str.debug.log
push 9
push 0
push eax
push eax
push esi
push edx
call fcn.0044e0be
mov dword [0x59d90c], edi
test byte [0x599b48], 1
je 0x470c16
cmp byte [edi + 0xb], 0
jns 0x470930
mov edi, dword [edi]
sub esp, 0x1c
movaps xmm0, xmmword [0x581f80]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x59d914], eax
inc eax
cmp eax, 1
ja 0x470c16
lea eax, [ebp - 0x216]
push 0x206
push 0xff
push eax
call fcn.0052c210
add esp, 0xc
mov word [ebp - 0x218], 0
lea edi, [ebp - 0x218]
push edi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add eax, 0xfffffefb
cmp eax, 0xfffffefc
jb 0x470c14
mov esi, dword [0x59d90c]
push edi
call fcn.00542c14
add esp, 4
mov ebx, eax
movzx eax, byte [esi + 0xb]
test al, al
js 0x470a13
mov edi, esi
cmp ebx, 4
jbe 0x470a40
mov edx, 4
jmp 0x470a23
mov ecx, dword [edi]
lea edx, [ecx + eax*2]
cmp edx, str.debug.log
ja 0x4709f1
lea esi, [ecx + eax*2]
add esi, 0x12
cmp esi, str.debug.log
ja 0x470c3a
movups xmm0, xmmword [str.debug.log]
movups xmmword [edx], xmm0
mov word [edx + 0x10], 0x67
lea edx, [eax + 9]
mov dword [edi + 4], edx
mov word [ecx + eax*2 + 0x12], 0
jmp 0x470915
mov edx, 0x7fffffff
and edx, dword [esi + 8]
dec edx
cmp edx, ebx
jae 0x470a3e
mov eax, dword [esi + 4]
mov edi, ebx
sub edi, edx
mov ecx, esi
lea esi, [ebp - 0x218]
push esi
push ebx
push eax
push 0
push eax
push edi
push edx
call fcn.0044e0be
jmp 0x470a71
mov edi, dword [esi]
lea eax, [ebx + ebx]
push eax
lea eax, [ebp - 0x218]
push eax
push edi
call fcn.0052bc90
add esp, 0xc
cmp byte [esi + 0xb], 0
js 0x470a68
cmp ebx, 5
jae 0x470c43
mov byte [esi + 0xb], bl
jmp 0x470a6b
mov dword [esi + 4], ebx
mov word [edi + ebx*2], 0
mov ecx, dword [0x59d90c]
movzx ebx, byte [ecx + 0xb]
test bl, bl
js 0x470a98
je 0x470c3d
movzx eax, bl
cmp word [ecx + eax*2 - 2], 0x5c
jne 0x470ab5
lea eax, [ecx + 0xb]
jmp 0x470b39
mov eax, dword [ecx + 4]
test eax, eax
je 0x470c3d
mov edx, dword [ecx]
cmp word [edx + eax*2 - 2], 0x5c
jne 0x470adc
lea eax, [ecx + 0xb]
jmp 0x470b4a
mov esi, 4
mov edx, ecx
cmp bl, 4
jne 0x470aeb
push 0x581fd6
push 1
push 0
push esi
push esi
push 1
push esi
call fcn.0044e0be
mov ecx, dword [0x59d90c]
jmp 0x470b2e
mov edi, 0x7fffffff
and edi, dword [ecx + 8]
dec edi
mov esi, eax
cmp edi, eax
je 0x470ac1
lea esi, [edx + eax*2]
cmp esi, 0x581fd6
ja 0x470b08
lea edi, [edx + eax*2]
add edi, 2
cmp edi, 0x581fd6
ja 0x470c49
mov word [esi], 0x5c
lea ebx, [eax + 1]
cmp byte [ecx + 0xb], 0
js 0x470b24
cmp ebx, 5
jae 0x470c4f
mov byte [ecx + 0xb], bl
jmp 0x470b27
mov dword [ecx + 4], ebx
mov word [edx + eax*2 + 2], 0
lea eax, [ecx + 0xb]
movzx ebx, byte [ecx + 0xb]
test bl, bl
js 0x470b4a
movzx edx, bl
mov edi, 4
mov esi, ecx
cmp bl, 5
jae 0x470b7c
jmp 0x470b5f
mov edi, 0x7fffffff
and edi, dword [ecx + 8]
dec edi
mov edx, dword [ecx + 4]
mov esi, edi
sub esi, edx
cmp esi, 9
jae 0x470b7a
mov eax, edx
sub eax, edi
add eax, 9
push str.debug.log
push 9
push 0
push edx
push edx
push eax
push edi
call fcn.0044e0be
jmp 0x470bc8
mov esi, dword [ecx]
lea edi, [esi + edx*2]
cmp edi, str.debug.log
ja 0x470b99
lea ebx, [esi + edx*2]
add ebx, 0x12
cmp ebx, str.debug.log
ja 0x470c40
movups xmm0, xmmword [str.debug.log]
movups xmmword [edi], xmm0
mov word [edi + 0x10], 0x67
lea ebx, [edx + 9]
cmp byte [eax], 0
js 0x470bbe
cmp ebx, 5
jae 0x470c46
mov byte [eax], bl
jmp 0x470bc1
mov dword [ecx + 4], ebx
mov word [esi + edx*2 + 0x12], 0
mov eax, dword [0x59d90c]
cmp byte [eax + 0xb], 0
mov bl, 1
jns 0x470bd7
mov eax, dword [eax]
sub esp, 0x1c
movaps xmm0, xmmword [0x581f80]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x59d914], eax
inc eax
cmp eax, 1
ja 0x470c16
mov dword [0x59d914], 0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00528e13
mov eax, ebx
add esp, 0x21c
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0053bf0b
call fcn.0042d55a
int3
int3
int3
int3
int3
int3
int3
int3
int3