Function at 0x40af10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51fe26
mov eax, dword fs:[0]
push eax
mov eax, 0x10e4
call fcn.004e3560
mov eax, dword [0x5640a8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov edi, ecx
lea ecx, [ebp - 0x1070]
call fcn.0042f4e0
push 4
push 0
push str..exe
lea ecx, [ebp - 0x1070]
mov dword [ebp - 4], 0
call fcn.0040c5d0
cmp eax, 0xffffffff
je 0x40afff
push eax
push 0
lea eax, [ebp - 0x1028]
push eax
lea ecx, [ebp - 0x1070]
call fcn.0040c150
mov esi, eax
lea eax, [ebp - 0x1070]
cmp eax, esi
je 0x40afdd
mov eax, dword [ebp - 0x105c]
cmp eax, 8
jb 0x40afb4
inc eax
lea ecx, [ebp - 0x1070]
push eax
push dword [ebp - 0x1070]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0x105c], 7
push esi
lea ecx, [ebp - 0x1070]
mov dword [ebp - 0x1060], 0
mov word [ebp - 0x1070], ax
call fcn.004032f0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1014]
cmp eax, 8
jb 0x40afff
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
push 1
push 0xffffffffffffffff
lea eax, [ebp - 0x10ec]
mov dword [ebp - 0x10ec], 0x5f
push eax
lea ecx, [ebp - 0x1070]
call fcn.0040c510
cmp eax, 0xffffffff
je 0x40b1be
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x1070]
push eax
lea eax, [ebp - 0x1028]
push eax
call fcn.0040c150
mov esi, eax
cmp esi, 0x56ea14
je 0x40b08c
mov ecx, dword [0x56ea28]
cmp ecx, 8
jb 0x40b065
inc ecx
push ecx
push dword [0x56ea14]
mov ecx, 0x56ea14
call fcn.00402f10
xor eax, eax
mov dword [0x56ea28], 7
push esi
mov ecx, 0x56ea14
mov dword [0x56ea24], 0
mov word [0x56ea14], ax
call fcn.004032f0
mov eax, dword [ebp - 0x1014]
cmp eax, 8
jb 0x40b0aa
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
mov eax, 7
mov dword [ebp - 0x10a8], 0
xor ecx, ecx
mov dword [ebp - 0x10a4], eax
mov word [ebp - 0x10b8], cx
xor esi, esi
mov byte [ebp - 4], 3
cmp dword [0x56ea24], esi
jbe 0x40b1a2
nop word [eax + eax]
cmp dword [0x56ea28], 8
mov eax, 0x56ea14
cmovae eax, dword [0x56ea14]
movzx eax, word [eax + esi*2]
push eax
call fcn.004fe4e3
add esp, 4
test eax, eax
jne 0x40b14c
cmp dword [0x56ea28], 8
mov eax, 0x56ea14
cmovae eax, dword [0x56ea14]
movzx eax, word [eax + esi*2]
push eax
call fcn.004fe4b9
add esp, 4
test eax, eax
je 0x40b17e
cmp dword [0x56ea28], 8
mov eax, 0x56ea14
cmovae eax, dword [0x56ea14]
movzx eax, word [eax + esi*2]
push eax
call fcn.004fe4cf
add esp, 4
test eax, eax
je 0x40b17e
cmp dword [0x56ea28], 8
lea ecx, [ebp - 0x10b8]
mov eax, 0x56ea14
cmovae eax, dword [0x56ea14]
movzx eax, word [eax + esi*2]
push eax
push 1
call fcn.0040c6c0
inc esi
cmp esi, dword [0x56ea24]
jb 0x40b0e0
cmp dword [ebp - 0x10a8], 0
je 0x40b19c
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x10b8]
mov ecx, 0x56ea14
push eax
call fcn.00402670
mov eax, dword [ebp - 0x10a4]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x40b1be
inc eax
lea ecx, [ebp - 0x10b8]
push eax
push dword [ebp - 0x10b8]
call fcn.00402f10
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.004fb530
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x810]
add esp, 0xc
push 0x400
push eax
push 0x66
push edi
call esi
cmp word [ebp - 0x810], 0
jne 0x40b1f9
xor ecx, ecx
jmp 0x40b211
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b202
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
mov ecx, 0x56ea2c
push eax
call fcn.00402570
push 0x400
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.004fb530
add esp, 0xc
lea eax, [ebp - 0x810]
push 0x400
push eax
push 0x65
push edi
call esi
cmp word [ebp - 0x810], 0
jne 0x40b258
xor ecx, ecx
jmp 0x40b270
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b261
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
mov ecx, 0x56e9b4
push eax
call fcn.00402570
xor edx, edx
lea ecx, [ebp - 0x1028]
call fcn.0042f600
mov esi, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1058]
push 0xb
xor eax, eax
mov dword [ebp - 0x1044], 7
push 0x53dd6c
mov dword [ebp - 0x1048], 0
mov word [ebp - 0x1058], ax
call fcn.00402570
push ecx
mov edx, esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1058]
call fcn.0041dd90
mov eax, dword [ebp - 0x1044]
add esp, 4
cmp eax, 8
jb 0x40b2f7
inc eax
lea ecx, [ebp - 0x1058]
push eax
push dword [ebp - 0x1058]
call fcn.00402f10
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1014]
cmp eax, 8
jb 0x40b319
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
push 0x800
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.004fb530
add esp, 0xc
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp word [ebp - 0x1010], 0
jne 0x40b352
xor ecx, ecx
jmp 0x40b36f
lea ecx, [ebp - 0x1010]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b360
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x1010]
mov ecx, 0x56e99c
push eax
call fcn.00402570
push 0x53ca00
lea eax, [ebp - 0x1028]
push 0x56e99c
push eax
call fcn.0040ccf0
add esp, 0xc
push 0x56e984
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1058]
call fcn.0040ce70
add esp, 4
mov esi, eax
cmp esi, 0x56e99c
je 0x40b401
mov ecx, dword [0x56e9b0]
cmp ecx, 8
jb 0x40b3da
inc ecx
push ecx
push dword [0x56e99c]
mov ecx, 0x56e99c
call fcn.00402f10
xor eax, eax
mov dword [0x56e9b0], 7
push esi
mov ecx, 0x56e99c
mov dword [0x56e9ac], 0
mov word [0x56e99c], ax
call fcn.004032f0
mov eax, dword [ebp - 0x1044]
cmp eax, 8
jb 0x40b41f
inc eax
lea ecx, [ebp - 0x1058]
push eax
push dword [ebp - 0x1058]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0x1044], 7
mov word [ebp - 0x1058], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x1048], 0
cmp eax, 8
jb 0x40b45d
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
xor edx, edx
lea ecx, [ebp - 0x1028]
call fcn.0042f600
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
jb 0x40b476
mov eax, dword [eax]
cmp dword [0x56e998], 8
mov ecx, 0x56e984
mov edx, eax
cmovae ecx, dword [0x56e984]
sub esp, 0x18
push ebx
push 0
call fcn.0042f9e0
mov byte [ebp - 4], 0
add esp, 0x20
mov eax, dword [ebp - 0x1014]
cmp eax, 8
jb 0x40b4bb
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
push str.user.dat
lea ecx, [ebp - 0x1028]
call fcn.00403170
push 0x53ca1c
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 9
call fcn.00403170
push eax
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x40b50f
mov eax, dword [ecx]
jmp 0x40b511
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
push edx
push 0x56e984
mov word [eax], dx
call fcn.00402670
lea ecx, [ebp - 0x10a0]
call fcn.0042f6d0
add esp, 0x18
push eax
lea eax, [ebp - 0x1058]
mov byte [ebp - 4], 0xb
push eax
call fcn.0040ce00
add esp, 0xc
push eax
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0xc
push eax
mov ecx, 0x564a30
call fcn.004245b0
mov eax, dword [ebp - 0x1044]
cmp eax, 8
jb 0x40b579
inc eax
lea ecx, [ebp - 0x1058]
push eax
push dword [ebp - 0x1058]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0x1044], 7
mov word [ebp - 0x1058], ax
mov eax, dword [ebp - 0x108c]
mov dword [ebp - 0x1048], 0
cmp eax, 8
jb 0x40b5b4
inc eax
lea ecx, [ebp - 0x10a0]
push eax
push dword [ebp - 0x10a0]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0x108c], 7
mov word [ebp - 0x10a0], ax
mov eax, dword [ebp - 0x102c]
mov dword [ebp - 0x1090], 0
cmp eax, 8
jb 0x40b5ef
inc eax
lea ecx, [ebp - 0x1040]
push eax
push dword [ebp - 0x1040]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0x102c], 7
mov word [ebp - 0x1040], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x1030], 0
cmp eax, 8
jb 0x40b62d
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
lea ecx, [ebp - 0x1088]
call fcn.0042f2c0
push ebx
lea ecx, [ebp - 0x1058]
mov byte [ebp - 4], 0xd
call fcn.00403170
lea eax, [ebp - 0x1058]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x10e8]
call fcn.0040a5a0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1044]
cmp eax, 8
jb 0x40b680
inc eax
lea ecx, [ebp - 0x1058]
push eax
push dword [ebp - 0x1058]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0x1044], 7
push 0x53ca44
lea ecx, [ebp - 0x1028]
mov dword [ebp - 0x1048], 0
mov word [ebp - 0x1058], ax
call fcn.00403170
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x10e8]
call fcn.0040a7f0
mov byte [ebp - 4], 0x10
mov esi, eax
mov ecx, dword [ebp - 0x1014]
cmp ecx, 8
jb 0x40b6e7
inc ecx
push ecx
push dword [ebp - 0x1028]
lea ecx, [ebp - 0x1028]
call fcn.00402f10
test esi, esi
je 0x40b78d
push 0x53ca44
lea ecx, [ebp - 0x1028]
call fcn.00403170
push ecx
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x10a0]
push eax
lea ecx, [ebp - 0x10e8]
call fcn.0040a870
mov edx, eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1040]
call fcn.00430fd0
push eax
lea ecx, [ebp - 0x1088]
call fcn.0040c2f0
mov eax, dword [ebp - 0x102c]
cmp eax, 0x10
jb 0x40b758
inc eax
lea ecx, [ebp - 0x1040]
push eax
push dword [ebp - 0x1040]
call fcn.00402920
lea ecx, [ebp - 0x10a0]
mov dword [ebp - 0x102c], 0xf
mov dword [ebp - 0x1030], 0
mov byte [ebp - 0x1040], 0
call fcn.00402450
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 0x10
call fcn.00402450
push 0x53ca4c
lea ecx, [ebp - 0x1028]
call fcn.00403170
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x10e8]
call fcn.0040a7f0
mov byte [ebp - 4], 0x10
mov esi, eax
mov ecx, dword [ebp - 0x1014]
cmp ecx, 8
jb 0x40b7d7
inc ecx
push ecx
push dword [ebp - 0x1028]
lea ecx, [ebp - 0x1028]
call fcn.00402f10
test esi, esi
je 0x40b82e
push 0x53ca4c
lea ecx, [ebp - 0x1028]
call fcn.00403170
push ecx
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x15
push eax
lea eax, [ebp - 0x1040]
push eax
lea ecx, [ebp - 0x10e8]
call fcn.0040a870
push eax
mov ecx, 0x56e9b4
call fcn.0040c240
lea ecx, [ebp - 0x1040]
call fcn.00402450
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 0x10
call fcn.00402450
mov edx, 0x56e9b4
lea ecx, [ebp - 0x1028]
call fcn.00430fd0
sub esp, 0x18
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x1088]
mov ecx, esp
push edx
mov edx, eax
call fcn.0040cec0
add esp, 4
lea ecx, [ebp - 0x1040]
call fcn.00425ef0
add esp, 0x18
mov ecx, 0x56e9cc
push eax
call fcn.0040c2f0
mov eax, dword [ebp - 0x102c]
cmp eax, 0x10
jb 0x40b88f
inc eax
lea ecx, [ebp - 0x1040]
push eax
push dword [ebp - 0x1040]
call fcn.00402920
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x102c], 0xf
mov dword [ebp - 0x1030], 0
mov byte [ebp - 0x1040], 0
cmp eax, 0x10
jb 0x40b8cc
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402920
cmp dword [ebp - 0x1074], 0x10
lea edx, [ebp - 0x1088]
push dword [ebp - 0x1078]
cmovae edx, dword [ebp - 0x1088]
lea ecx, [ebp - 0x1028]
call fcn.0041bc90
add esp, 4
mov ecx, 0x56e9e4
push eax
call fcn.0040c2f0
mov eax, dword [ebp - 0x1014]
cmp eax, 0x10
jb 0x40b91d
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402920
push 0x56e9cc
lea ecx, [ebp - 0x1028]
call fcn.004d1bc0
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x17
push eax
push 0x53ca50
mov ecx, 0x56ea50
call fcn.004d2bc0
mov ecx, eax
call fcn.004d2540
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 0x10
call fcn.004d2420
push 0x56e9e4
lea ecx, [ebp - 0x1028]
call fcn.004d1bc0
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x18
push eax
push 0x53ca54
mov ecx, 0x56ea50
call fcn.004d2bc0
mov ecx, eax
call fcn.004d2540
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 0x10
call fcn.004d2420
lea ecx, [ebp - 0x1028]
call fcn.0042ee40
mov edx, eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1040]
call fcn.00430fd0
push eax
lea ecx, [ebp - 0x10a0]
mov byte [ebp - 4], 0x1a
call fcn.004d1bc0
lea eax, [ebp - 0x10a0]
mov byte [ebp - 4], 0x1b
push eax
push str.winver
mov ecx, 0x56ea50
call fcn.004d2bc0
mov ecx, eax
call fcn.004d2540
lea ecx, [ebp - 0x10a0]
call fcn.004d2420
mov eax, dword [ebp - 0x102c]
cmp eax, 0x10
jb 0x40ba13
inc eax
lea ecx, [ebp - 0x1040]
push eax
push dword [ebp - 0x1040]
call fcn.00402920
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x102c], 0xf
mov dword [ebp - 0x1030], 0
mov byte [ebp - 0x1040], 0
cmp eax, 8
jb 0x40ba50
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
mov edx, 0x56e9b4
lea ecx, [ebp - 0x1028]
call fcn.00430fd0
push eax
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 0x1c
call fcn.004d1bc0
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x1d
push eax
push str.product_sn
mov ecx, 0x56ea50
call fcn.004d2bc0
mov ecx, eax
call fcn.004d2540
lea ecx, [ebp - 0x1040]
call fcn.004d2420
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1014]
cmp eax, 0x10
jb 0x40babe
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402920
mov edx, 0x56ea14
lea ecx, [ebp - 0x1028]
call fcn.00430fd0
push eax
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 0x1e
call fcn.004d1bc0
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x1f
push eax
push str.promo_code
mov ecx, 0x56ea50
call fcn.004d2bc0
mov ecx, eax
call fcn.004d2540
lea ecx, [ebp - 0x1040]
call fcn.004d2420
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1014]
cmp eax, 0x10
jb 0x40bb2c
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402920
push 0x3b
push str.Content_Type:_application_json_r_nUser_Agent:_superclient_r_n_r_n
mov ecx, 0x56e9fc
call fcn.00402570
lea ecx, [ebp - 0x10e8]
call fcn.0040bbb0
mov eax, dword [ebp - 0x1074]
cmp eax, 0x10
jb 0x40bb66
inc eax
lea ecx, [ebp - 0x1088]
push eax
push dword [ebp - 0x1088]
call fcn.00402920
lea ecx, [ebp - 0x1070]
mov dword [ebp - 0x1074], 0xf
mov dword [ebp - 0x1078], 0
mov byte [ebp - 0x1088], 0
call fcn.00402450
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e1de4
mov esp, ebp
pop ebp
ret