Function at 0x40af10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51fba0
mov eax, dword fs:[0]
push eax
mov eax, 0x10e4
call fcn.004e3330
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.0042f230
push 4
push 0
push str..exe
lea ecx, [ebp - 0x1070]
mov dword [ebp - 4], 0
call fcn.0040c530
cmp eax, 0xffffffff
je 0x40afff
push eax
push 0
lea eax, [ebp - 0x1028]
push eax
lea ecx, [ebp - 0x1070]
call fcn.0040c0b0
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.0040c470
cmp eax, 0xffffffff
je 0x40b1be
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x1070]
push eax
lea eax, [ebp - 0x1028]
push eax
call fcn.0040c0b0
mov esi, eax
cmp esi, 0x56e938
je 0x40b08c
mov ecx, dword [0x56e94c]
cmp ecx, 8
jb 0x40b065
inc ecx
push ecx
push dword [0x56e938]
mov ecx, 0x56e938
call fcn.00402f10
xor eax, eax
mov dword [0x56e94c], 7
push esi
mov ecx, 0x56e938
mov dword [0x56e948], 0
mov word [0x56e938], 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 [0x56e948], esi
jbe 0x40b1a2
nop word [eax + eax]
cmp dword [0x56e94c], 8
mov eax, 0x56e938
cmovae eax, dword [0x56e938]
movzx eax, word [eax + esi*2]
push eax
call fcn.004fe2d3
add esp, 4
test eax, eax
jne 0x40b14c
cmp dword [0x56e94c], 8
mov eax, 0x56e938
cmovae eax, dword [0x56e938]
movzx eax, word [eax + esi*2]
push eax
call fcn.004fe2a9
add esp, 4
test eax, eax
je 0x40b17e
cmp dword [0x56e94c], 8
mov eax, 0x56e938
cmovae eax, dword [0x56e938]
movzx eax, word [eax + esi*2]
push eax
call fcn.004fe2bf
add esp, 4
test eax, eax
je 0x40b17e
cmp dword [0x56e94c], 8
lea ecx, [ebp - 0x10b8]
mov eax, 0x56e938
cmovae eax, dword [0x56e938]
movzx eax, word [eax + esi*2]
push eax
push 1
call fcn.0040c620
inc esi
cmp esi, dword [0x56e948]
jb 0x40b0e0
cmp dword [ebp - 0x10a8], 0
je 0x40b19c
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x10b8]
mov ecx, 0x56e938
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.004fb2d0
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, 0x56e950
push eax
call fcn.00402570
push 0x400
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.004fb2d0
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, 0x56e8d8
push eax
call fcn.00402570
xor edx, edx
lea ecx, [ebp - 0x1028]
call fcn.0042f350
mov esi, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1058]
push 0xb
xor eax, eax
mov dword [ebp - 0x1044], 7
push 0x53dd34
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.0041daf0
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.004fb2d0
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, 0x56e8c0
push eax
call fcn.00402570
push 0x53ca10
lea eax, [ebp - 0x1028]
push 0x56e8c0
push eax
call fcn.0040cc50
add esp, 0xc
push 0x56e8a8
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1058]
call fcn.0040cdd0
add esp, 4
mov esi, eax
cmp esi, 0x56e8c0
je 0x40b401
mov ecx, dword [0x56e8d4]
cmp ecx, 8
jb 0x40b3da
inc ecx
push ecx
push dword [0x56e8c0]
mov ecx, 0x56e8c0
call fcn.00402f10
xor eax, eax
mov dword [0x56e8d4], 7
push esi
mov ecx, 0x56e8c0
mov dword [0x56e8d0], 0
mov word [0x56e8c0], 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.0042f350
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
jb 0x40b476
mov eax, dword [eax]
cmp dword [0x56e8bc], 8
mov ecx, 0x56e8a8
mov edx, eax
cmovae ecx, dword [0x56e8a8]
sub esp, 0x18
push ebx
push 0
call fcn.0042f730
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 0x53ca2c
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 0x56e8a8
mov word [eax], dx
call fcn.00402670
lea ecx, [ebp - 0x10a0]
call fcn.0042f420
add esp, 0x18
push eax
lea eax, [ebp - 0x1058]
mov byte [ebp - 4], 0xb
push eax
call fcn.0040cd60
add esp, 0xc
push eax
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0xc
push eax
mov ecx, 0x564a30
call fcn.00424310
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.0042f010
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 0x53ca54
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 0x53ca54
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.00430d20
push eax
lea ecx, [ebp - 0x1088]
call fcn.0040c250
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
mov edx, 0x56e8d8
lea ecx, [ebp - 0x1028]
call fcn.00430d20
sub esp, 0x18
mov byte [ebp - 4], 0x14
lea edx, [ebp - 0x1088]
mov ecx, esp
push edx
mov edx, eax
call fcn.0040ce20
add esp, 4
lea ecx, [ebp - 0x1040]
call fcn.00425c50
add esp, 0x18
mov ecx, 0x56e8f0
push eax
call fcn.0040c250
mov eax, dword [ebp - 0x102c]
cmp eax, 0x10
jb 0x40b7ee
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 0x40b82b
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.0041b9f0
add esp, 4
mov ecx, 0x56e908
push eax
call fcn.0040c250
mov eax, dword [ebp - 0x1014]
cmp eax, 0x10
jb 0x40b87c
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402920
push 0x56e8f0
lea ecx, [ebp - 0x1028]
call fcn.004d1970
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x15
push eax
push 0x53ca5c
mov ecx, 0x56e968
call fcn.004d2970
mov ecx, eax
call fcn.004d22f0
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 0x10
call fcn.004d21d0
push 0x56e908
lea ecx, [ebp - 0x1028]
call fcn.004d1970
lea eax, [ebp - 0x1028]
mov byte [ebp - 4], 0x16
push eax
push 0x53ca60
mov ecx, 0x56e968
call fcn.004d2970
mov ecx, eax
call fcn.004d22f0
lea ecx, [ebp - 0x1028]
mov byte [ebp - 4], 0x10
call fcn.004d21d0
lea ecx, [ebp - 0x1028]
call fcn.0042eb90
mov edx, eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x1040]
call fcn.00430d20
push eax
lea ecx, [ebp - 0x10a0]
mov byte [ebp - 4], 0x18
call fcn.004d1970
lea eax, [ebp - 0x10a0]
mov byte [ebp - 4], 0x19
push eax
push str.winver
mov ecx, 0x56e968
call fcn.004d2970
mov ecx, eax
call fcn.004d22f0
lea ecx, [ebp - 0x10a0]
call fcn.004d21d0
mov eax, dword [ebp - 0x102c]
cmp eax, 0x10
jb 0x40b972
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 0x40b9af
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402f10
mov edx, 0x56e8d8
lea ecx, [ebp - 0x1028]
call fcn.00430d20
push eax
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 0x1a
call fcn.004d1970
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x1b
push eax
push str.product_sn
mov ecx, 0x56e968
call fcn.004d2970
mov ecx, eax
call fcn.004d22f0
lea ecx, [ebp - 0x1040]
call fcn.004d21d0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1014]
cmp eax, 0x10
jb 0x40ba1d
inc eax
lea ecx, [ebp - 0x1028]
push eax
push dword [ebp - 0x1028]
call fcn.00402920
mov edx, 0x56e938
lea ecx, [ebp - 0x1028]
call fcn.00430d20
push eax
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 0x1c
call fcn.004d1970
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x1d
push eax
push str.promo_code
mov ecx, 0x56e968
call fcn.004d2970
mov ecx, eax
call fcn.004d22f0
lea ecx, [ebp - 0x1040]
call fcn.004d21d0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x1014]
cmp eax, 0x10
jb 0x40ba8b
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, 0x56e920
call fcn.00402570
lea ecx, [ebp - 0x10e8]
call fcn.0040bb10
mov eax, dword [ebp - 0x1074]
cmp eax, 0x10
jb 0x40bac5
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.004e1bb1
mov esp, ebp
pop ebp
ret