Function at 0x47a6e0
Capabilities:
Check mutex on windows
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b8451
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x26c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], 0
push 0x208
push 0
lea esi, [edi + 0x10]
push esi
call fcn.0048b3f0
add esp, 0xc
mov ecx, edi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00479a90
cmp byte [edi + 0x22c], 0
mov dword [edi + 0x218], eax
mov dword [ebp + 0x14], 1
lea eax, [eax + eax*4]
lea eax, [eax*2 + 1]
mov dword [edi + 0x21c], eax
jne 0x47a95e
push 0x208
lea eax, [ebp - 0x278]
push 0
push eax
call fcn.0048b3f0
add esp, 0xc
lea eax, [ebp - 0x278]
push eax
push 0
push 0
push 0x801a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [ebp + 0x14], eax
test eax, eax
js 0x47a9cd
mov edx, 0x104
lea ecx, [ebp - 0x278]
nop dword [eax + eax]
cmp word [ecx], 0
je 0x47a7ae
add ecx, 2
sub edx, 1
jne 0x47a7a0
xor eax, eax
mov ecx, 0x80070057
test edx, edx
mov ebx, 0x104
cmovne ecx, eax
mov eax, ebx
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x47a81b
mov edx, ebx
lea ecx, [ebp - 0x278]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x47a80e
lea eax, [esi + 0x7ffffefa]
mov ebx, str.hpqLog
add eax, edx
sub ebx, ecx
nop dword [eax]
test eax, eax
je 0x47a809
movzx esi, word [ecx + ebx]
test si, si
je 0x47a809
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x47a7f0
mov ebx, 0x104
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
push 0
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x47a851
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x47a851
test eax, eax
jg 0x47a844
mov dword [ebp + 0x14], eax
jmp 0x47a854
movzx eax, ax
or eax, 0x80070000
mov dword [ebp + 0x14], eax
jmp 0x47a854
mov eax, dword [ebp + 0x14]
test eax, eax
js 0x47a959
mov edx, 0x104
lea eax, [ebp - 0x278]
cmp word [eax], 0
je 0x47a875
add eax, 2
sub edx, 1
jne 0x47a867
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, ebx
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x47a8d6
mov edx, ebx
lea ecx, [ebp - 0x278]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x47a8c9
lea eax, [esi + 0x7ffffefa]
mov ebx, 0x4ce720
add eax, edx
sub ebx, ecx
nop
test eax, eax
je 0x47a8c9
movzx esi, word [ecx + ebx]
test si, si
je 0x47a8c9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x47a8b0
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x14], 8
jb 0x47a8e3
mov esi, dword [ebx]
jmp 0x47a8e5
mov esi, ebx
mov ecx, 0x104
lea eax, [ebp - 0x278]
cmp word [eax], 0
je 0x47a8fe
add eax, 2
sub ecx, 1
jne 0x47a8f0
xor edx, edx
mov eax, 0x80070057
test ecx, ecx
cmovne eax, edx
mov dword [ebp + 8], eax
mov eax, 0x104
sub eax, ecx
test ecx, ecx
cmovne edx, eax
mov eax, dword [ebp + 8]
test eax, eax
js 0x47a93f
push SysReAllocString
push esi
push 0
mov eax, 0x104
sub eax, edx
push eax
lea eax, [ebp - 0x278]
lea eax, [eax + edx*2]
push eax
call fcn.0047b7b0
lea eax, [ebp - 0x278]
push eax
push 0x104
lea esi, [edi + 0x10]
push esi
call fcn.004924d3
add esp, 0xc
jmp 0x47a9d5
lea esi, [edi + 0x10]
jmp 0x47a9cd
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 8
jb 0x47a969
mov eax, dword [eax]
push eax
push 0x104
push esi
call fcn.004924d3
add esp, 0xc
lea ecx, [ebp - 0x40]
push esi
call fcn.0041c410
mov dword [ebp - 4], 0
lea eax, [ebp - 0x40]
push eax
call fcn.004796a0
add esp, 4
test eax, eax
setne bl
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x47a9b5
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00402920
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
test bl, bl
je 0x47a9d2
xor eax, eax
mov word [esi], ax
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov dword [ebp - 4], 1
cmp word [esi], ax
je 0x47aa17
push esi
lea ecx, [ebp - 0x70]
call fcn.0041c410
mov byte [ebp - 4], 2
mov ebx, 1
jmp 0x47aa54
xor eax, eax
mov dword [ebp - 0x30], 0
push 0xffffffffffffffff
push eax
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push ebx
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
call fcn.004023c0
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 3
mov ebx, 2
mov dword [ebp - 0x10], ebx
xor ecx, ecx
mov word [ebp - 0x58], cx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
push eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], 0
call fcn.0044db70
mov dword [ebp - 4], 5
test bl, 2
je 0x47aabd
and ebx, 0xfffffffd
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x47aaa9
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00402920
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 6
test bl, 1
je 0x47aaf5
and ebx, 0xfffffffe
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x47aae1
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00402920
xor eax, eax
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x60], 0
mov word [ebp - 0x70], ax
push 1
push 0
push 0x4bec64
lea ecx, [ebp - 0x58]
call fcn.00461870
test eax, eax
jle 0x47ab27
inc eax
lea ecx, [ebp - 0x58]
push eax
push 0
call fcn.00402310
lea ecx, [ebp - 0x58]
cmp ecx, eax
je 0x47ab27
push 0xffffffffffffffff
push 0
push eax
call fcn.004023c0
xor esi, esi
nop dword [eax]
push 1
push esi
push 0x4ce720
lea ecx, [ebp - 0x58]
call fcn.00461870
mov esi, eax
test esi, esi
js 0x47ab57
push 0x2e
push 1
push 1
push esi
lea ecx, [ebp - 0x58]
call fcn.0047d3e0
jmp 0x47ab30
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x70]
push str.Global_
push eax
call fcn.00471bf0
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 7
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x47abab
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x47ab8e
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00402920
xor eax, eax
mov dword [ebp - 0x14], 7
push esi
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
call fcn.0044db70
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x47abc4
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00402920
xor eax, eax
mov dword [ebp - 0x5c], 7
cmp dword [ebp - 0x14], 8
mov word [ebp - 0x70], ax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push 0
push 0
mov dword [ebp - 0x60], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp dword [ebp + 0x14], 0
mov dword [edi + 0x228], eax
jl 0x47ac61
mov ecx, edi
call fcn.0047ad80
test eax, eax
je 0x47ac61
mov ecx, edi
call fcn.0047ace0
test al, al
jne 0x47ac19
push 1
mov ecx, edi
call fcn.00479e30
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
call fcn.0047bae0
cmp byte [edi + 0x220], 0
je 0x47ac5a
push 0x2c
call fcn.00475970
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x47ac4e
push edi
mov ecx, eax
call fcn.004784d0
jmp 0x47ac50
xor eax, eax
mov byte [ebp - 4], 6
mov dword [edi + 0x230], eax
mov ecx, edi
call fcn.00479650
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x44]
pop edi
pop esi
pop ebx
cmp eax, 8
jb 0x47ac7d
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00402920
xor eax, eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x47acad
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00402920
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10