Function at 0x402a09
Capabilities:
Get common file path

Disassembly:
push 0x548
mov eax, 0x4a25df
call fcn.00483fef
mov edi, ecx
mov eax, dword [edi + 0x78]
mov dword [ebp - 0x550], edi
cmp dword [eax - 0xc], 0
je 0x402cce
add eax, 0xfffffff0
push eax
call fcn.004036b6
add eax, 0x10
pop ecx
mov dword [ebp - 0x520], eax
mov edx, dword [0x4f3280]
push 0x14
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
pop ecx
idiv ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp edx, 1
jne 0x402a78
call fcn.0048440b
mov ecx, dword [0x4f3280]
cmp ecx, eax
jne 0x402a78
dec ecx
mov dword [0x4f3280], ecx
push dword [edi + 0x4c]
push ecx
mov ecx, esp
push str.330b09051817010c35
call fcn.0040185d
lea eax, [ebp - 0x510]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
push dword [eax]
lea ecx, [ebp - 0x520]
mov byte [ebp - 4], 1
call fcn.00404d24
mov ecx, dword [ebp - 0x510]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00404d08
lea eax, [ebp - 0x52c]
push eax
call fcn.0042c5c9
mov esi, eax
lea ecx, [ebp - 0x51c]
mov byte [ebp - 4], 2
mov dword [esp], 0x4aedac
call fcn.0040185d
push 3
pop ecx
push 0x4aeda4
push eax
lea eax, [ebp - 0x514]
push eax
mov byte [ebp - 4], cl
call fcn.00401e52
push 4
pop ecx
push esi
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], cl
call fcn.00401dfd
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x520]
push dword [eax - 0xc]
mov byte [ebp - 4], 5
push eax
call fcn.00401fb4
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x51c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x52c]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00404d08
call fcn.00406844
test al, al
jne 0x402b87
mov edx, dword [0x4f3280]
mov ecx, ebx
mov eax, dword [ebp + ecx*4 - 0x400]
imul eax, eax, 0x7f
add edx, eax
inc ecx
cmp ecx, 0x3ec
jb 0x402b6c
mov dword [0x4f3280], edx
push 0x4f19f8
lea ecx, [ebp - 0x524]
call fcn.004016bd
lea eax, [ebp - 0x524]
push eax
lea eax, [ebp - 0x520]
push eax
lea eax, [ebp - 0x528]
push eax
mov byte [ebp - 4], 6
call fcn.00410324
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 7
call fcn.0040ec07
add esp, 0x10
push dword [eax]
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 8
call fcn.00403715
mov ecx, dword [ebp - 0x510]
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
mov byte [ebp - 4], 7
call fcn.00404d08
inc bl
je 0x402cd4
lea eax, [ebp - 0x524]
push eax
push ecx
mov ecx, esp
push str.0b202d2b23093d3c271d382c293c2d1d3a2417003c3c381a2d393d2d3b3c17
call fcn.0040185d
lea eax, [ebp - 0x52c]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
mov esi, eax
push 0x4f19f8
lea ecx, [ebp - 0x51c]
mov byte [ebp - 4], 9
call fcn.004016bd
push esi
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x514]
push eax
mov byte [ebp - 4], 0xa
call fcn.0041db62
add esp, 0xc
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 0xb
call fcn.0041db62
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00405c87
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x51c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x52c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x528]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x524]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x520]
lea ecx, [ecx - 0x10]
call fcn.00404d08
call fcn.00483f41
ret
mov eax, dword [ebp - 0x528]
cmp dword [eax - 0xc], 0
jne 0x402d9c
push ecx
mov ecx, esp
push str.0b202d2b23093d3c271d382c293c2d1d3a24173b3c3a023b2726172d25383c31
call fcn.0040185d
lea eax, [ebp - 0x514]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
mov esi, eax
push 0x4f19f8
lea ecx, [ebp - 0x51c]
mov byte [ebp - 4], 0xd
call fcn.004016bd
push esi
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 0xe
call fcn.0041db62
add esp, 0xc
push 0xf
pop ebx
push eax
mov ecx, edi
mov byte [ebp - 4], bl
call fcn.00405c87
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x51c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [0x4f3280]
lea eax, [ecx + 1]
imul eax, ecx
cdq
idiv ebx
cmp edx, 7
jne 0x402ca4
push 0xd7
push 0xd6
push str._d__d_n
call fcn.00484c6d
add esp, 0xc
jmp 0x402ca4
lea ecx, [ebp - 0x498]
push 3
mov dword [ebp - 0x49c], ecx
push eax
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 0x10
call fcn.0040490b
push dword [ebp - 0x49c]
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 0x11
call fcn.00401027
lea ecx, [ebp - 0x50c]
mov byte [ebp - 4], 0x12
call fcn.0041e163
push 0
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 0x13
call fcn.00420d03
push 1
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x50c]
mov byte [ebp - 4], 0x14
call fcn.0041f9dd
test al, al
jne 0x402e91
push ecx
mov ecx, esp
push str.0b202d2b23093d3c271d382c293c2d1d3a241738293a3b2d172d3a3a273a
call fcn.0040185d
lea eax, [ebp - 0x538]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
mov esi, eax
push 0x4f19f8
lea ecx, [ebp - 0x514]
mov byte [ebp - 4], 0x15
call fcn.004016bd
push esi
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 0x16
call fcn.0041db62
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x17
call fcn.00405c87
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x538]
jmp 0x403513
mov esi, str._L_update_low_ver
push esi
lea ecx, [ebp - 0x514]
call fcn.0040181c
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 0x18
call fcn.0042d7c1
pop ecx
pop ecx
push dword [eax]
lea ecx, [ebp - 0x538]
mov byte [ebp - 4], 0x19
call fcn.00401788
push dword [eax]
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 0x1a
call fcn.00420ff8
mov ecx, eax
call fcn.00421c11
mov ecx, dword [ebp - 0x538]
test al, al
lea ecx, [ecx - 0x10]
sete bl
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
mov byte [ebp - 4], 0x14
lea ecx, [ecx - 0x10]
call fcn.00404d08
test bl, bl
jne 0x40351b
push esi
lea ecx, [ebp - 0x514]
call fcn.0040181c
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 0x1b
call fcn.0042d7c1
pop ecx
pop ecx
push dword [eax]
lea ecx, [ebp - 0x538]
mov byte [ebp - 4], 0x1c
call fcn.00401788
push dword [eax]
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 0x1d
call fcn.00420ff8
mov ecx, eax
call fcn.0042173e
push eax
lea ecx, [ebp - 0x530]
call fcn.0040181c
mov ecx, dword [ebp - 0x538]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
mov byte [ebp - 4], 0x21
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov eax, dword [ebp - 0x530]
cmp dword [eax - 0xc], 0
jne 0x402fbb
lea ecx, [eax - 0x10]
jmp 0x403516
mov esi, str.update_high_ver
push esi
lea ecx, [ebp - 0x54c]
call fcn.00420ff8
mov ecx, eax
call fcn.00421c11
test al, al
jne 0x403041
call fcn.0040673d
test al, al
jne 0x40350d
mov esi, dword [0x4f3280]
jmp 0x403038
mov ecx, esi
and ecx, 0x80000001
jns 0x402ffb
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x403008
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
jmp 0x40300f
lea esi, [esi*2 + 1]
mov eax, esi
push 3
cdq
pop ecx
idiv ecx
mov dword [0x4f3280], esi
sub edx, 0
je 0x40302b
dec edx
dec edx
je 0x40302e
dec edx
je 0x40302f
jmp 0x403038
add esi, 2
inc esi
add esi, 2
mov dword [0x4f3280], esi
test esi, esi
jne 0x402fec
jmp 0x40350d
push esi
lea ecx, [ebp - 0x54c]
call fcn.00420ff8
mov ecx, eax
call fcn.0042173e
push eax
lea ecx, [ebp - 0x534]
call fcn.0040181c
mov esi, dword [ebp - 0x534]
mov byte [ebp - 4], 0x22
cmp dword [esi - 0xc], 0
jne 0x403095
call fcn.0040673d
test al, al
jne 0x40308d
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
mov esi, dword [ebp - 0x534]
lea ecx, [esi - 0x10]
jmp 0x403508
mov esi, str._L_download_url
push esi
lea ecx, [ebp - 0x514]
call fcn.0040181c
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x510]
push eax
mov byte [ebp - 4], 0x23
call fcn.0042d7c1
pop ecx
pop ecx
push dword [eax]
lea ecx, [ebp - 0x538]
mov byte [ebp - 4], 0x24
call fcn.00401788
push dword [eax]
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 0x25
call fcn.00420ff8
mov ecx, eax
call fcn.00421c11
mov ecx, dword [ebp - 0x538]
test al, al
lea ecx, [ecx - 0x10]
sete bl
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
mov byte [ebp - 4], 0x22
lea ecx, [ecx - 0x10]
call fcn.00404d08
test bl, bl
jne 0x4034ff
push esi
lea ecx, [ebp - 0x514]
call fcn.0040181c
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x554]
push eax
mov byte [ebp - 4], 0x26
call fcn.0042d7c1
pop ecx
pop ecx
push dword [eax]
lea ecx, [ebp - 0x538]
mov byte [ebp - 4], 0x27
call fcn.00401788
push dword [eax]
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 0x28
call fcn.00420ff8
mov ecx, eax
call fcn.0042173e
push eax
lea ecx, [ebp - 0x51c]
call fcn.0040181c
mov ecx, dword [ebp - 0x538]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x554]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x514]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x2c
call fcn.00404d08
call fcn.004067e6
test al, al
jne 0x4031e1
mov eax, dword [0x4f3280]
push 0x64
cdq
pop ecx
idiv ecx
xor ecx, ecx
push 4
lea eax, [edx + 0x141]
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00482751
pop ecx
push eax
call fcn.0048453a
pop ecx
mov eax, dword [ebp - 0x51c]
cmp dword [eax - 0xc], 0
jne 0x4031f5
lea ecx, [eax - 0x10]
jmp 0x4034fa
mov eax, dword [ebp - 0x534]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x518], esp
mov esi, esp
push eax
call fcn.004036b6
add eax, 0x10
pop ecx
mov dword [esi], eax
mov eax, dword [ebp - 0x530]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
mov byte [ebp - 4], 0x2d
call fcn.004036b6
add eax, 0x10
pop ecx
mov dword [esi], eax
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.004061c8
test al, al
jne 0x403256
call fcn.0040675f
test al, al
jne 0x4034f1
inc dword [0x4f3280]
jmp 0x4034f1
push 0x4aef7c
lea ecx, [ebp - 0x51c]
call fcn.00403715
test eax, eax
je 0x403563
push 0x4aef84
lea ecx, [ebp - 0x51c]
call fcn.00403715
test eax, eax
je 0x403563
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.004845c0
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x403339
push ecx
mov ecx, esp
push str.0b202d2b23093d3c271d382c293c2d1d3a24170f2d3c1c2d253818293c2017
call fcn.0040185d
lea eax, [ebp - 0x518]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
mov esi, eax
push 0x4f19f8
lea ecx, [ebp - 0x510]
mov byte [ebp - 4], 0x31
call fcn.004016bd
push esi
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x53c]
push eax
mov byte [ebp - 4], 0x32
call fcn.0041db62
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x33
call fcn.00405c87
mov ecx, dword [ebp - 0x53c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x518]
jmp 0x4034e9
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x52c]
call fcn.0040185d
mov eax, dword [ebp - 0x52c]
lea ecx, [ebp - 0x52c]
mov eax, dword [eax - 0xc]
dec eax
push eax
mov byte [ebp - 4], 0x34
call fcn.00403a28
movzx eax, ax
cmp eax, 0x5c
je 0x4033cb
push str._L__
lea ecx, [ebp - 0x510]
call fcn.0040185d
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x518]
push eax
mov byte [ebp - 4], 0x35
call fcn.0042d7c1
pop ecx
pop ecx
mov eax, dword [eax]
lea ecx, [ebp - 0x52c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x36
push eax
call fcn.00401fb4
mov ecx, dword [ebp - 0x518]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
mov byte [ebp - 4], 0x34
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov eax, dword [ebp - 0x52c]
add eax, 0xfffffff0
push eax
call fcn.004036b6
lea esi, [eax + 0x10]
pop ecx
mov dword [ebp - 0x514], esi
lea eax, [ebp - 0x518]
push eax
mov byte [ebp - 4], 0x37
call fcn.0042c5c9
pop ecx
mov eax, dword [eax]
lea ecx, [ebp - 0x52c]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x38
push eax
call fcn.00401fb4
mov ecx, dword [ebp - 0x518]
mov byte [ebp - 4], 0x37
lea ecx, [ecx - 0x10]
call fcn.00404d08
lea eax, [ebp - 0x52c]
push eax
lea eax, [ebp - 0x51c]
push eax
call fcn.0041264c
pop ecx
pop ecx
test al, al
jne 0x4034c0
push ecx
mov ecx, esp
push str.0b202d2b23093d3c271d382c293c2d1d3a2417003c3c381c270a2126293a310e21242d1a2d393d2d3b3c
call fcn.0040185d
lea eax, [ebp - 0x53c]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
mov ebx, eax
push 0x4f19f8
lea ecx, [ebp - 0x510]
mov byte [ebp - 4], 0x39
call fcn.004016bd
push ebx
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x518]
push eax
mov byte [ebp - 4], 0x3a
call fcn.0041db62
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3b
call fcn.00405c87
mov ecx, dword [ebp - 0x518]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x53c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
lea ecx, [esi - 0x10]
jmp 0x4034de
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x52c]
push eax
mov ecx, edi
call fcn.00404eab
mov ecx, dword [ebp - 0x514]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x52c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x51c]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x534]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x530]
lea ecx, [ecx - 0x10]
call fcn.00404d08
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 0x13
call fcn.00420e57
lea ecx, [ebp - 0x50c]
call fcn.00401c97
lea ecx, [ebp - 0x418]
call fcn.00401056
lea eax, [ebp - 0x498]
cmp dword [ebp - 0x49c], eax
je 0x402ca4
push dword [ebp - 0x49c]
call fcn.0048447c
pop ecx
jmp 0x402ca4
push ecx
mov ecx, esp
push str.0b202d2b23093d3c271d382c293c2d1d3a24173d3a24172629172e273a173d382c293c2d
call fcn.0040185d
lea eax, [ebp - 0x53c]
push eax
call fcn.0042cbd1
pop ecx
pop ecx
mov esi, eax
push 0x4f19f8
lea ecx, [ebp - 0x510]
mov byte [ebp - 4], 0x2e
call fcn.004016bd
push esi
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x518]
push eax
mov byte [ebp - 4], 0x2f
call fcn.0041db62
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x30
call fcn.00405c87
mov ecx, dword [ebp - 0x518]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x510]
lea ecx, [ecx - 0x10]
call fcn.00404d08
mov ecx, dword [ebp - 0x53c]
jmp 0x4034e9