Function at 0x415675
Capabilities:
Get common file path

Disassembly:
push ebp
sub esp, 0x338
lea ebp, [esp - 4]
mov eax, dword [0x48a9f8]
xor eax, ebp
mov dword [ebp + 0x338], eax
push 0x144
mov eax, 0x46cefb
call fcn.00448a2f
mov edi, dword [ebp + 0x344]
xor ebx, ebx
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x16], bl
cmp dword [edi + 0x14], ebx
je 0x4166a4
push 1
push 3
lea ecx, [ebp - 0x150]
call fcn.004119f3
lea eax, [ebp - 0x148]
push edi
push eax
mov dword [ebp - 4], ebx
call fcn.00411080
pop ecx
pop ecx
lea ecx, [ebp + 0x10c]
call fcn.0040ccc4
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.0040ccc4
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 2
call fcn.0040ccc4
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 3
call fcn.0040ccc4
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 4
call fcn.0040ccc4
lea eax, [ebp + 0x10c]
push eax
lea eax, [ebp - 0x150]
push eax
mov byte [ebp - 4], 6
call fcn.00415579
pop ecx
pop ecx
xor eax, eax
lea edi, [ebp - 0x1c]
stosb byte es:[edi], al
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470770
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 7
call fcn.004123b9
mov ecx, eax
call fcn.00412ca3
push ebx
push 1
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.00401870
cmp esi, ebx
jl 0x4165d3
push 0xf
pop edi
push ebx
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x38], edi
call fcn.00401850
push ebx
lea ecx, [ebp + 0x94]
mov dword [ebp + 0xac], edi
call fcn.00401850
push ebx
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x90], edi
call fcn.00401850
push ebx
lea ecx, [ebp + 0x5c]
mov dword [ebp + 0x74], edi
call fcn.00401850
push ebx
lea ecx, [ebp + 0xb0]
mov dword [ebp + 0xc8], edi
call fcn.00401850
mov esi, 0x47076c
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.004014a0
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 0xd
call fcn.0040b64a
mov edi, eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp + 0x10c]
call fcn.0040a1e4
push edi
push eax
call fcn.00407bb9
pop ecx
pop ecx
neg al
sbb al, al
push ebx
inc al
push 1
lea ecx, [ebp - 0x64]
mov byte [ebp - 0x15], al
mov byte [ebp - 4], 0xc
call fcn.00401870
cmp byte [ebp - 0x15], bl
je 0x415ced
xor eax, eax
lea edi, [ebp - 0x1c]
stosb byte es:[edi], al
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x44]
push 0x2e
push esi
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 0xe
call fcn.004123b9
push eax
lea ecx, [ebp]
call fcn.0041237e
push ebx
push 1
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
mov ecx, dword [ebp + 0x1c]
add ecx, 9
call fcn.004089af
test al, al
jne 0x415ced
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp]
call fcn.0040aa44
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp]
call fcn.0040aa62
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00407bb9
pop ecx
pop ecx
test al, al
jne 0x415ced
mov eax, dword [ebp - 0x78]
add eax, 0x1c
push eax
lea ecx, [ebp + 0xec]
call fcn.0041237e
xor eax, eax
lea edi, [ebp - 0x8c]
stosb byte es:[edi], al
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470770
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 0xf
call fcn.004123b9
mov ecx, eax
call fcn.00412ca3
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x44]
mov edi, eax
mov byte [ebp - 4], 0xc
call fcn.00401870
cmp edi, esi
jne 0x415cde
xor eax, eax
lea edi, [ebp - 0x88]
stosb byte es:[edi], al
push dword [ebp - 0x88]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470768
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 0x10
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0x11
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x90]
stosb byte es:[edi], al
push dword [ebp - 0x90]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470764
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 0x12
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x94]
mov byte [ebp - 4], 0x13
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x98]
stosb byte es:[edi], al
push dword [ebp - 0x98]
lea ecx, [ebp - 0x44]
push 0x2e
push str.file_name
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 0x14
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x78]
mov byte [ebp - 4], 0x15
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x94]
stosb byte es:[edi], al
push dword [ebp - 0x94]
lea ecx, [ebp - 0x44]
push 0x2e
push str.file_size
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 0x16
call fcn.004123b9
mov ecx, eax
call fcn.00412ca3
push ebx
push esi
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x74]
stosb byte es:[edi], al
push dword [ebp - 0x74]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470748
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 0x17
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x5c]
mov byte [ebp - 4], 0x18
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push str.version
call fcn.0040c18b
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0xec]
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0xb0]
mov byte [ebp - 4], 0x1a
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
push 0x94
call fcn.00448df6
pop ecx
cmp eax, ebx
je 0x415b3b
mov ecx, eax
call fcn.0040a9f9
mov edi, eax
jmp 0x415b3d
xor edi, edi
cmp edi, ebx
je 0x415cda
xor eax, eax
push 0x208
mov word [ebp + 0x12c], ax
lea eax, [ebp + 0x12e]
push ebx
push eax
call fcn.004463d0
add esp, 0xc
lea eax, [ebp + 0x12c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
cmp dword [eax + 0x18], 8
pop ecx
pop ecx
jb 0x415b8f
mov eax, dword [eax + 4]
jmp 0x415b92
add eax, 4
push eax
lea eax, [ebp + 0x12c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401a20
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1b
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401a20
lea eax, [ebp + 0x12c]
push eax
lea ecx, [edi + 0x1c]
call fcn.004019c0
lea eax, [ebp + 0x94]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x38]
mov byte [ebp - 4], 0x1c
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401a20
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x8c], eax
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x54]
mov byte [ebp - 4], 0x1d
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401a20
lea eax, [ebp + 0xb0]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
pop ecx
pop ecx
mov byte [ebp - 4], 0x1e
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x70]
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401a20
mov esi, dword [ebp - 0x48]
mov byte [edi + 0x90], bl
mov eax, dword [esi + 0x18]
push esi
push eax
lea ecx, [ebp - 0x80]
call fcn.0041c1b7
push edi
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.0040b2d8
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.00407d66
test al, al
jne 0x415cd0
push edi
mov ecx, esi
call fcn.00411957
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x415cd0
mov ecx, eax
call fcn.0040a9b0
push dword [ebp - 0x1c]
call fcn.0044674d
pop ecx
push edi
mov ecx, esi
call fcn.00411957
mov dword [eax], edi
mov byte [ebp - 0x16], 1
lea eax, [ebp - 0x78]
push eax
call fcn.00408b4e
pop ecx
jmp 0x415885
mov esi, 0x47073c
push esi
lea ecx, [ebp - 0x64]
call fcn.004014a0
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 0x1f
call fcn.0040b64a
mov edi, eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0x10c]
call fcn.0040a1e4
push edi
push eax
call fcn.00407bb9
pop ecx
pop ecx
neg al
sbb al, al
push ebx
inc al
push 1
lea ecx, [ebp - 0x64]
mov byte [ebp - 0x15], al
mov byte [ebp - 4], 0xc
call fcn.00401870
cmp byte [ebp - 0x15], bl
je 0x416112
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push esi
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 0x20
call fcn.004123b9
push eax
lea ecx, [ebp + 0x3c]
call fcn.0041237e
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
mov ecx, dword [ebp + 0x58]
add ecx, 9
call fcn.004089af
test al, al
jne 0x416112
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470770
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0x21
call fcn.004123b9
mov ecx, eax
call fcn.00412ca3
push ebx
push esi
lea ecx, [ebp - 0x44]
mov edi, eax
mov byte [ebp - 4], 0xc
call fcn.00401870
cmp edi, esi
jne 0x416112
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470764
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0x22
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x94]
mov byte [ebp - 4], 0x23
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push str.file_name
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0x24
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x78]
mov byte [ebp - 4], 0x25
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470748
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0x26
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x5c]
mov byte [ebp - 4], 0x27
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push str.version
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0x28
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0xb0]
mov byte [ebp - 4], 0x29
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
push 0x94
call fcn.00448df6
pop ecx
cmp eax, ebx
je 0x415f5b
mov ecx, eax
call fcn.0040a9f9
mov edi, eax
jmp 0x415f5d
xor edi, edi
cmp edi, ebx
je 0x41610e
xor eax, eax
push 0x208
mov word [ebp + 0x12c], ax
lea eax, [ebp + 0x12e]
push ebx
push eax
call fcn.004463d0
add esp, 0xc
lea eax, [ebp + 0x12c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
cmp dword [eax + 0x18], 8
pop ecx
pop ecx
jb 0x415faf
mov eax, dword [eax + 4]
jmp 0x415fb2
add eax, 4
push eax
lea eax, [ebp + 0x12c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
push esi
lea ecx, [ebp - 0x64]
call fcn.00401a20
push 0x470738
lea ecx, [ebp - 0x64]
call fcn.004014a0
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x2a
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2b
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00401a20
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401870
lea eax, [ebp + 0x12c]
push eax
lea ecx, [edi + 0x1c]
call fcn.004019c0
lea eax, [ebp + 0x94]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x38]
mov byte [ebp - 4], 0x2c
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00401a20
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x38]
push eax
mov dword [edi + 0x8c], ebx
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x54]
mov byte [ebp - 4], 0x2d
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00401a20
lea eax, [ebp + 0xb0]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x70]
mov byte [ebp - 4], 0x2e
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00401a20
mov esi, dword [ebp - 0x48]
mov byte [edi + 0x90], bl
mov eax, dword [esi + 0x18]
push esi
push eax
lea ecx, [ebp - 0x80]
call fcn.0041c1b7
push edi
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.0040b2d8
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.00407d66
test al, al
jne 0x416103
push edi
mov ecx, esi
call fcn.00411957
mov esi, dword [eax]
cmp esi, ebx
je 0x416103
mov ecx, esi
call fcn.0040a9b0
push esi
call fcn.0044674d
pop ecx
mov ecx, dword [ebp - 0x48]
push edi
call fcn.00411957
mov dword [eax], edi
mov byte [ebp - 0x16], 1
xor esi, esi
push str.fullpackage
lea ecx, [ebp - 0x64]
inc esi
call fcn.004014a0
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 0x2f
call fcn.0040b64a
mov edi, eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0x10c]
call fcn.0040a1e4
push edi
push eax
call fcn.00407bb9
pop ecx
pop ecx
neg al
sbb al, al
push ebx
inc al
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 0x15], al
mov byte [ebp - 4], 0xc
call fcn.00401870
cmp byte [ebp - 0x15], bl
je 0x41659b
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push str.fullpackage
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], 0x30
call fcn.004123b9
push eax
lea ecx, [ebp + 0xcc]
call fcn.0041237e
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xc
call fcn.00401870
mov ecx, dword [ebp + 0xe8]
add ecx, 9
call fcn.004089af
test al, al
jne 0x41659b
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
push 0x2e
push 0x470770
call fcn.0040c18b
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 0x31
call fcn.004123b9
mov ecx, eax
call fcn.00412ca3
push ebx
push esi
lea ecx, [ebp - 0x44]
mov edi, eax
mov byte [ebp - 4], 0xc
call fcn.00401870
cmp edi, esi
jne 0x41659b
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
push 0x2e
push str.appid
call fcn.0040c18b
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 0x32
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0x33
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0xc8]
push 0x2e
push 0x470764
call fcn.0040c18b
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 0x34
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x94]
mov byte [ebp - 4], 0x35
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
push 0x2e
push str.file_name
call fcn.0040c18b
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 0x36
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x78]
mov byte [ebp - 4], 0x37
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0xc8]
push 0x2e
push str.file_size
call fcn.0040c18b
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 0x38
call fcn.004123b9
mov ecx, eax
call fcn.00412ca3
push ebx
push esi
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 0xc
call fcn.00401870
xor eax, eax
lea edi, [ebp - 0x14]
stosb byte es:[edi], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
push 0x2e
push 0x470748
call fcn.0040c18b
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 0x39
call fcn.004129b3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x5c]
mov byte [ebp - 4], 0x3a
call fcn.00401740
push ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xc
call fcn.00401870
push 0x47b4a1
lea ecx, [ebp + 0xb0]
call fcn.00401820
push 0x94
call fcn.00448df6
pop ecx
cmp eax, ebx
je 0x4163f9
mov ecx, eax
call fcn.0040a9f9
mov edi, eax
jmp 0x4163fb
xor edi, edi
cmp edi, ebx
je 0x416597
xor eax, eax
push 0x208
mov word [ebp + 0x12c], ax
lea eax, [ebp + 0x12e]
push ebx
push eax
call fcn.004463d0
add esp, 0xc
lea eax, [ebp + 0x12c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004012d0
cmp dword [eax + 0x18], 8
pop ecx
pop ecx
jb 0x41644d
mov eax, dword [eax + 4]
jmp 0x416450
add eax, 4
push eax
lea eax, [ebp + 0x12c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00401a20
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3b
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401a20
lea eax, [ebp + 0x12c]
push eax
lea ecx, [edi + 0x1c]
call fcn.004019c0
lea eax, [ebp + 0x94]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x38]
mov byte [ebp - 4], 0x3c
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00401a20
mov eax, dword [ebp - 0x74]
mov dword [edi + 0x8c], eax
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004012d0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x54]
mov byte [ebp - 4], 0x3d
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xc
call fcn.00401a20
lea eax, [ebp + 0xb0]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004012d0
pop ecx
pop ecx
mov byte [ebp - 4], 0x3e
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [edi + 0x70]
call fcn.004018c0
push ebx
push esi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00401a20
mov esi, dword [ebp - 0x48]
mov byte [edi + 0x90], bl
mov eax, dword [esi + 0x18]
push esi
push eax
lea ecx, [ebp - 0x80]
call fcn.0041c1b7
push edi
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.0040b2d8
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.00407d66
test al, al
jne 0x416589
push edi
mov ecx, esi
call fcn.00411957
mov esi, dword [eax]
cmp esi, ebx
je 0x416589
mov ecx, esi
call fcn.0040a9b0
push esi
call fcn.0044674d
pop ecx
mov ecx, dword [ebp - 0x48]
push edi
call fcn.00411957
xor esi, esi
mov dword [eax], edi
inc esi
mov byte [ebp - 0x16], 1
push ebx
push esi
lea ecx, [ebp + 0xb0]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp + 0x5c]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp + 0x78]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp + 0x94]
call fcn.00401870
push ebx
push esi
lea ecx, [ebp + 0x20]
call fcn.00401870
mov dword [ebp - 4], 5
jmp 0x4165eb
lea ecx, [ebp + 0xcc]
mov byte [ebp - 4], 4
call fcn.00412343
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 3
call fcn.00412343
lea ecx, [ebp + 0xec]
mov byte [ebp - 4], 2
call fcn.00412343
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.00412343
lea ecx, [ebp + 0x10c]
mov byte [ebp - 4], bl
call fcn.00412343
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x150]
call fcn.00409fb0
mov al, byte [ebp - 0x16]
jmp 0x4166a6
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x338]
xor ecx, ebp
call fcn.004463b6
add ebp, 0x33c
leave
ret 4
jmp 0x415675