Function at 0x470a50
Capabilities:
Get common file path

Disassembly:
sub esp, 0x428
mov eax, dword [0x4951c0]
xor eax, esp
mov dword [esp + 0x424], eax
push ebx
push ebp
mov ebp, dword [esp + 0x434]
push esi
push edi
mov eax, ebp
mov esi, ecx
call fcn.0046f9e0
xor ebx, ebx
mov dword [ebp + 0x524], ebx
mov ecx, 0x47d5e7
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x470aa7
cmp dl, bl
je 0x470aa3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x470aa7
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x470a87
xor eax, eax
jmp 0x470aac
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4710db
mov ecx, ebp
sub ecx, esi
mov eax, esi
lea edx, [ecx + 0x72c]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x470ac0
cmp byte [0x58fcb6], bl
je 0x470d2d
push 0x2e
push esi
call fcn.00408590
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x470b3c
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x470af0
sub eax, edx
sub eax, esi
add eax, edi
cmp eax, 4
jb 0x470b3c
movsx edx, byte [edi + 1]
push edx
call fcn.00408ae7
add esp, 4
cmp eax, 0x6d
jne 0x470b3c
movsx eax, byte [edi + 2]
push eax
call fcn.00408ae7
add esp, 4
cmp eax, 0x70
jne 0x470b3c
movsx ecx, byte [edi + 3]
push ecx
call fcn.00408ae7
add esp, 4
cmp eax, 0x33
je 0x470ecf
push ebx
push esi
call fcn.00408562
add esp, 8
test eax, eax
jne 0x470b59
mov edx, dword [0x543994]
push ebx
push ebx
push esi
push edx
jmp 0x470bdf
lea eax, [esp + 0x1c]
push eax
lea edi, [esp + 0x12c]
lea ecx, [esp + 0x24]
mov edx, esi
call fcn.00420a10
add esp, 4
cmp eax, 0xffffffff
je 0x470b9d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [0x543994]
push edx
mov eax, edi
push eax
push ecx
call dword [0x55b280]
add esp, 0x10
test al, al
je 0x470ecf
lea edx, [esp + 0x128]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1f]
push edx
lea ecx, [esp + 0x34]
mov edx, esi
call fcn.00473a20
add esp, 0x10
cmp eax, 0xffffffff
je 0x470bf0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [0x543994]
push ecx
lea edx, [esp + 0x130]
push edx
push eax
call dword [0x55b280]
add esp, 0x10
test al, al
je 0x470ecf
mov byte [0x54b122], 1
cmp dword [0x543998], ebx
jne 0x470c10
call fcn.00401de0
test eax, eax
jne 0x470c10
mov esi, dword [0x58fb24]
jmp 0x470c20
mov eax, dword [0x58fb24]
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
cmp esi, ebx
jne 0x470c9a
mov ecx, dword [0x543994]
cmp byte [esp + 0x444], bl
je 0x470c66
fld qword [esp + 0x448]
sub esp, 8
fstp qword [esp]
push ecx
call dword [0x55b284]
mov eax, dword [0x54ad08]
add esp, 0xc
call fcn.0046f250
mov eax, dword [esp + 0x440]
mov dword [ebp + 0x524], eax
jmp 0x4710db
cmp dword [esp + 0x440], ebx
setne dl
movzx eax, dl
push eax
push ecx
call dword [0x5553e4]
mov eax, dword [0x54ad08]
add esp, 8
call fcn.0046f250
mov eax, dword [esp + 0x440]
mov dword [ebp + 0x524], eax
jmp 0x4710db
mov edx, dword [0x54ad08]
mov eax, dword [0x54ad08]
call fcn.0046f250
mov eax, dword [0x543994]
cmp byte [esp + 0x444], bl
je 0x470cd1
fld qword [esp + 0x448]
sub esp, 8
fstp qword [esp]
push eax
call dword [0x55b284]
add esp, 0xc
jmp 0x470ce9
cmp dword [esp + 0x440], ebx
setne cl
movzx edx, cl
push edx
push eax
call dword [0x5553e4]
add esp, 8
mov ecx, dword [0x54ad08]
cmp ecx, 0x64
jne 0x470cfb
mov eax, 0xffffd8f0
jmp 0x470d03
mov eax, dword [0x54ad08]
imul eax, eax, 0xffffffe7
mov edx, dword [0x543994]
push ebx
push esi
push eax
push 0xfffff63c
push edx
call dword [0x5553e8]
mov eax, dword [esp + 0x454]
add esp, 0x14
mov dword [ebp + 0x524], eax
jmp 0x4710db
cmp byte [0x58fb9f], bl
je 0x470ed5
push ebx
push esi
call fcn.00408562
add esp, 8
test eax, eax
jne 0x470d4c
push ebx
push ebx
push esi
jmp 0x470dca
lea ecx, [esp + 0x1c]
push ecx
lea edi, [esp + 0x12c]
lea ecx, [esp + 0x24]
mov edx, esi
call fcn.00420a10
add esp, 4
cmp eax, 0xffffffff
je 0x470d8e
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
push eax
mov ecx, edi
push ecx
push 0xc7
call dword [0x55b280]
add esp, 0x10
test al, al
je 0x470ecf
lea edx, [esp + 0x128]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1f]
push edx
lea ecx, [esp + 0x34]
mov edx, esi
call fcn.00473a20
add esp, 0x10
cmp eax, 0xffffffff
je 0x470de0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
push eax
push ecx
lea edx, [esp + 0x130]
push edx
push 0xc7
call dword [0x55b280]
add esp, 0x10
test al, al
je 0x470ecf
mov byte [0x54b122], 1
cmp dword [0x58fb24], ebx
jne 0x470e5d
mov eax, dword [0x54ad08]
call fcn.0046f250
cmp byte [esp + 0x444], bl
je 0x470e2f
fld qword [esp + 0x448]
sub esp, 8
fstp qword [esp]
push 0xc7
call dword [0x55b284]
mov ecx, dword [esp + 0x44c]
add esp, 0xc
mov dword [ebp + 0x524], ecx
jmp 0x4710db
cmp dword [esp + 0x440], ebx
setne al
movzx ecx, al
push ecx
push 0xc7
call dword [0x5553e4]
mov ecx, dword [esp + 0x448]
add esp, 8
mov dword [ebp + 0x524], ecx
jmp 0x4710db
mov esi, dword [0x54ad08]
xor eax, eax
call fcn.0046f250
cmp byte [esp + 0x444], bl
je 0x470e90
fld qword [esp + 0x448]
sub esp, 8
fstp qword [esp]
push 0xc7
call dword [0x55b284]
add esp, 0xc
jmp 0x470eac
cmp dword [esp + 0x440], ebx
setne dl
movzx eax, dl
push eax
push 0xc7
call dword [0x5553e4]
add esp, 8
push esi
push ebp
call fcn.0046f510
mov eax, dword [0x54ad08]
call fcn.0046f250
mov ecx, dword [esp + 0x440]
mov dword [ebp + 0x524], ecx
jmp 0x4710db
mov byte [0x54b122], bl
mov edx, dword [0x49a954]
push edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push ebx
push esi
call fcn.00408562
add esp, 8
test eax, eax
je 0x470f71
lea edx, [esp + 0x28]
mov eax, esi
sub edx, esi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x470f00
lea eax, [esp + 0x28]
push eax
call fcn.00474a50
add esp, 4
test eax, eax
jne 0x470f53
cmp dword [0x58fe3c], ebx
jne 0x4710db
mov edx, dword [0x49a31c]
lea ecx, [esp + 0x28]
push ecx
push 0x48afbc
push edx
call fcn.004081b3
mov eax, dword [0x49a31c]
add esp, 0xc
push eax
push 0x48afd8
call fcn.00458fe0
add esp, 8
mov dword [0x58fae0], 1
xor eax, eax
nop
mov cl, byte [esp + eax + 0x28]
mov byte [eax + 0x52e5c0], cl
inc eax
cmp cl, bl
jne 0x470f60
jmp 0x470fea
cmp byte [esi + 1], 0x3a
je 0x470fd4
lea ecx, [esp + 0x28]
push ecx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
cmp byte [esp + 0x2b], bl
je 0x470fa4
lea edi, [esp + 0x28]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x470f92
mov dx, word [0x48afe8]
mov word [edi], dx
mov eax, esi
mov edx, esi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x470fa8
lea edi, [esp + 0x28]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x470fb6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [0x58fae0], ebx
jmp 0x470fea
lea edx, [esp + 0x28]
mov eax, esi
sub edx, esi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x470fe0
xor eax, eax
lea esp, [esp]
mov cl, byte [esp + eax + 0x28]
mov byte [eax + 0x548760], cl
inc eax
cmp cl, bl
jne 0x470ff0
push 0x49a638
push 0x47d070
push 1
push ebx
push 0x47d010
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov eax, dword [0x49a638]
mov ecx, dword [eax]
mov edx, dword [ecx]
push 0x49ac7c
push 0x47d020
push eax
call edx
mov eax, dword [0x49a638]
mov ecx, dword [eax]
mov edx, dword [ecx]
push 0x49a63c
push 0x47d030
push eax
call edx
push 0x104
lea eax, [esp + 0x22c]
push eax
push 0xffffffffffffffff
push 0x548760
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [0x49a638]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0x22c]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
mov dword [0x58f970], 1
cmp dword [0x58fb24], ebx
jne 0x47109d
cmp dword [0x58fcc8], ebx
je 0x471096
mov eax, dword [0x54c2dc]
jmp 0x4710a9
mov eax, dword [0x54ad08]
jmp 0x4710a9
mov ecx, dword [0x54ad08]
mov dword [esp + 0x18], ecx
xor eax, eax
call fcn.0046f250
mov eax, dword [0x49ac7c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x1c]
call eax
cmp dword [0x58fb24], ebx
je 0x4710ce
mov ecx, dword [esp + 0x18]
push ecx
push ebp
call fcn.0046f510
mov edx, dword [esp + 0x440]
mov dword [ebp + 0x524], edx
mov ecx, dword [esp + 0x434]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00407f40
add esp, 0x428
ret 0x14