Function at 0x467c60
Capabilities:
Get file size
Read .ini file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov ecx, dword [0x5e9fbc]
mov eax, edx
push ebx
push esi
mov esi, dword [ebp + 0x18]
push edi
push 0
push 0x80
push 3
push 0
mov dword [ebp - 8], ecx
mov ecx, dword [ebp + 0x14]
push 3
push SysReAllocString
push eax
mov dword [ecx], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], 0
mov dword [esi], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x5f0854], eax
cmp edi, 0xffffffff
je 0x467d0e
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x5e8d50
push 1
push 0x41ef08
push 0x41ef2c
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x467d15
shl eax, 0x14
cmp eax, ebx
jae 0x467d15
push 0xc361
push 0x41ef40
push 2
call fcn.0045c680
add esp, 0xc
cmp eax, 6
je 0x467d15
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], 1
xor eax, eax
jmp 0x4685fd
lea eax, [ebx + 0xa]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
lea eax, [ebp + 0x18]
push 0
push eax
push ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GlobalSize]
sub eax, 2
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
mov dword [0x5f0854], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x467d65
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4685fd
cmp dword [0x5f0844], 0
je 0x467da7
mov esi, dword [ebp - 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [esi - 8]
lea edi, [edi + eax*2]
cmp edi, esi
jb 0x467da7
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x41ef68
push edi
call esi
test eax, eax
je 0x467da0
push 0x41ef74
push edi
call esi
test eax, eax
jne 0x467da7
mov dword [ebp - 0xc], 1
mov ecx, dword [0x5f0384]
call fcn.00467690
mov esi, dword [ebp - 0xc]
mov edi, eax
mov ecx, dword [0x5f0378]
neg edi
sbb edi, edi
and edi, dword [0x5f0384]
test esi, esi
mov dword [0x5f0384], edi
cmovne edi, dword [0x5f0a80]
mov dword [ebp - 0x10], edi
cmp ecx, 0xffffffff
je 0x467def
call fcn.00467690
test eax, eax
cmovne edi, dword [0x5f0378]
mov dword [ebp - 0x10], edi
mov eax, dword [ebp + 0x18]
mov dword [0x5e95cc], 0
test eax, eax
jne 0x467eaa
push 0x5f0300
xor edx, edx
xor ecx, ecx
call fcn.00472590
mov eax, dword [0x5f0364]
add esp, 4
mov eax, dword [eax*4 + 0x417510]
mov dword [0x5e95d8], eax
mov eax, dword [0x5f0370]
cmp eax, 0xffffffff
jne 0x467e42
cmp dword [0x5f084c], 0
je 0x467e44
test esi, esi
jne 0x467e44
lea edi, [eax + 7]
jmp 0x467e44
mov edi, eax
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [edi + edi*4]
shl eax, 4
push 0
mov dword [0x5e95cc], edi
mov edi, dword [ebp - 8]
test byte [eax + 0x5be128], 1
mov eax, 0xfde9
cmovne eax, dword [0x5e8f74]
push eax
push 0x7f5
push edi
call esi
push 0
mov edx, 0x41695d
mov ecx, edi
call fcn.00466940
mov eax, dword [0x5f0364]
add esp, 4
push 0
push dword [eax*4 + 0x417510]
push 0x7ef
push edi
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4685f8
mov esi, dword [0x5f0370]
mov dword [ebp - 0x1c], 0xfeff
cmp esi, 0xffffffff
je 0x467ece
cmp esi, 4
je 0x468508
cmp esi, 5
jne 0x46800f
cmp esi, 4
je 0x468508
mov edx, 0xfffe
mov dword [ebp - 0x20], edx
cmp esi, 5
je 0x467fd8
mov edx, 0xffff
mov dword [ebp - 4], edx
test ebx, ebx
je 0x46800f
cmp eax, 2
jl 0x46800f
cmp dword [0x5f0a6c], 0
jne 0x467f23
lea ecx, [ebp - 4]
push ecx
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_IsTextUnicode]
mov edx, dword [ebp - 4]
mov ecx, eax
mov esi, dword [0x5f0370]
jmp 0x467f25
xor ecx, ecx
movzx eax, word [ebx]
cmp edx, 0xffff
mov dword [ebp - 0x18], 0
cmove edx, dword [ebp - 0x18]
test ecx, ecx
jne 0x467f99
mov ecx, 0xfeff
cmp ax, cx
je 0x467fb2
mov ecx, 0xfffe
cmp ax, cx
je 0x467f9e
test dl, dl
je 0x46800f
mov eax, edx
and eax, 0xf0
test dl, 0xf
mov dword [ebp - 0x18], eax
setne cl
test eax, eax
setne al
test al, cl
jne 0x46800f
test edx, 0x200
jne 0x46800f
mov eax, edx
and eax, 0x180
cmp eax, 0x100
je 0x46800f
cmp dword [ebp - 0x18], 0x20
je 0x46800f
movzx eax, word [ebx]
mov ecx, 0xfffe
cmp ax, word [ebp - 0x1c]
je 0x467fb2
cmp ax, cx
je 0x467fb2
test dl, 0x88
jne 0x467fb2
xor ecx, ecx
jmp 0x467fb7
mov ecx, 1
mov dword [ebp - 4], ecx
cmp ax, word [ebp - 0x20]
je 0x467fcc
test dl, 0xf0
jne 0x467fcc
mov edx, 0xfffe
jmp 0x467fde
mov eax, 1
mov edx, 0xfffe
jmp 0x467fe0
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 4], ecx
xor eax, eax
cmp esi, 4
je 0x468508
cmp esi, 5
je 0x4684fb
cmp byte [ebx], 0xef
jne 0x4684ad
cmp byte [ebx + 1], 0xbb
jne 0x4684ad
cmp byte [ebx + 2], 0xbf
jne 0x4684ad
mov edx, dword [ebp + 0x18]
mov ecx, ebx
push 0x5f0300
call fcn.00472590
mov edx, dword [0x5f0370]
add esp, 4
cmp edx, 0xffffffff
je 0x46803a
cmp edx, 6
je 0x46803a
cmp edx, 7
jne 0x468251
cmp byte [ebx], 0xef
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jne 0x468055
cmp byte [ebx + 1], 0xbb
jne 0x468055
cmp byte [ebx + 2], 0xbf
je 0x4681f1
test byte [0x5f0300], 0x40
je 0x46808c
push 0x41f2b0
push 0x5f031c
call esi
test eax, eax
je 0x4681f1
push 0x41f2b8
push 0x5f031c
call esi
test eax, eax
je 0x4681f1
mov edx, dword [0x5f0370]
cmp edx, 6
je 0x4681f1
cmp edx, 7
je 0x4681f1
cmp dword [ebp - 0xc], 0
jne 0x4680b1
cmp dword [0x5f084c], 0
jne 0x4681f1
mov eax, dword [ebp + 0x18]
xor ecx, ecx
xor esi, esi
mov dword [ebp + 0x14], ebx
test eax, eax
jle 0x4680f3
mov edi, eax
movzx eax, byte [ebx]
mov eax, dword [eax*4 + 0x416f58]
lea ecx, [ecx + eax*8]
add ecx, eax
mov ecx, dword [ecx*4 + 0x417358]
cmp ecx, 8
je 0x4680e2
inc esi
inc ebx
cmp esi, edi
jl 0x4680c1
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
test ecx, ecx
jne 0x468251
mov eax, dword [ebp + 0x18]
cmp byte [ebx], 0xef
jne 0x46810e
cmp byte [ebx + 1], 0xbb
jne 0x46810e
cmp byte [ebx + 2], 0xbf
jne 0x46810e
lea ecx, [ebx + 3]
mov dword [ebp - 4], ecx
mov cl, byte [ebx]
jmp 0x46811a
mov ecx, ebx
mov dword [ebp - 4], ecx
mov cl, byte [ebx]
cmp cl, 0xef
jne 0x468129
cmp byte [ebx + 1], 0xbb
jne 0x468129
cmp byte [ebx + 2], 0xbf
lea esi, [eax - 3]
je 0x46812b
mov esi, eax
cmp cl, 0xef
jne 0x468144
cmp byte [ebx + 1], 0xbb
jne 0x468144
cmp byte [ebx + 2], 0xbf
jne 0x468144
lea ecx, [ebx + 3]
mov dword [ebp - 0x18], ecx
jmp 0x468147
mov dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x14], 0
mov al, byte [ecx]
test al, al
je 0x46818f
xor edi, edi
nop dword [eax]
cmp al, 0xf7
ja 0x468175
movzx eax, al
shr eax, 4
mov eax, dword [eax*4 + 0x416f18]
test eax, eax
jne 0x46817a
mov eax, 1
add ecx, eax
add edi, eax
mov al, byte [ecx]
test al, al
jne 0x468160
mov eax, edi
mov dword [ebp + 0x14], edi
mov edi, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
xor ecx, ecx
test esi, esi
jle 0x4681d1
mov ebx, dword [ebp - 0x18]
mov al, byte [ebx]
mov dword [ebp - 0x20], ecx
cmp al, 0xf7
ja 0x4681c2
movzx eax, al
shr eax, 4
mov eax, dword [eax*4 + 0x416f18]
test eax, eax
je 0x4681c2
xor ecx, ecx
sub esi, eax
cmp eax, 4
sete cl
inc ecx
add ecx, dword [ebp - 0x20]
jmp 0x4681c8
dec esi
mov eax, 1
add ebx, eax
test esi, esi
jg 0x468198
mov ebx, dword [ebp - 0x14]
cmp dword [ebp + 0x14], ecx
jne 0x4681eb
cmp dword [ebp - 0xc], 0
jne 0x468251
lea eax, [edi + edi*4]
shl eax, 4
test byte [eax + 0x5be128], 2
je 0x468251
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test byte [0x5f0300], 0x40
je 0x46840c
push 0x5f031c
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x46840c
push 0x41f2b0
push 0x5f031c
call esi
test eax, eax
je 0x46840c
push 0x41f2b8
push 0x5f031c
call esi
test eax, eax
je 0x46840c
mov edx, dword [0x5f0370]
cmp edx, 6
je 0x46840c
cmp edx, 7
je 0x46840c
cmp edx, 0xffffffff
jne 0x468299
mov eax, dword [0x5f0300]
and eax, 0x40
cmovne edx, dword [0x5f033c]
mov dword [0x5e95cc], edx
cmp edx, 0xffffffff
jne 0x46829f
test eax, eax
je 0x468278
xor edx, edx
jmp 0x468299
mov eax, dword [0x5f0378]
cmp eax, 0xffffffff
je 0x468297
mov edx, dword [0x5f0384]
lea eax, [eax + eax*4]
shl eax, 4
test byte [eax + 0x5be128], 0x3f
jne 0x468299
mov edx, edi
mov dword [0x5e95cc], edx
lea eax, [edx + edx*4]
shl eax, 4
test byte [eax + 0x5be128], 0x40
je 0x4682ba
cmp dword [eax + 0x5be12c], 0xfde8
jne 0x4682f5
cmp dword [eax + 0x5be12c], 0xfde8
jne 0x4683b3
mov esi, dword [ebp + 0x18]
xor ecx, ecx
mov eax, ebx
test esi, esi
jle 0x4682f5
mov bl, byte [eax]
mov byte [ebp + 0x17], bl
test bl, bl
mov ebx, dword [ebp - 0x14]
js 0x4683b3
cmp byte [ebp + 0x17], 0
je 0x4683b3
inc ecx
inc eax
cmp ecx, esi
jl 0x4682d5
lea eax, [edx + edx*4]
shl eax, 4
mov esi, dword [eax + 0x5be12c]
mov eax, dword [ebp + 0x18]
lea eax, [eax*2 + 0x10]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_GlobalSize]
shr eax, 1
push eax
push edi
push dword [ebp + 0x18]
push ebx
push 0
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea ecx, [esi + 8]
lea ecx, [esi + ecx*2]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0
mov ebx, eax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalSize]
push eax
push ebx
push esi
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
push edi
mov dword [ebp + 0x18], eax
call esi
mov edi, dword [ebp - 8]
push 0
push 0xfde9
push 0x7f5
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov edx, 0x41695d
mov ecx, edi
call fcn.00466940
add esp, 4
mov edx, ebx
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00466940
mov edx, ebx
call fcn.004672c0
add esp, 4
push ebx
jmp 0x4685f1
mov esi, dword [ebp - 8]
push 0
push dword [0x5e8f74]
push 0x7f5
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov edx, 0x41695d
mov ecx, esi
call fcn.00466940
add esp, 4
mov edx, ebx
mov ecx, esi
push dword [ebp + 0x18]
call fcn.00466940
mov edx, ebx
mov dword [0x5e95cc], 0
call fcn.004672c0
add esp, 4
mov dword [0x5e95d8], eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4685f8
mov edi, dword [ebp - 8]
push 0
push 0xfde9
push 0x7f5
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov edx, 0x41695d
mov ecx, edi
call fcn.00466940
add esp, 4
cmp byte [ebx], 0xef
jne 0x46847c
cmp byte [ebx + 1], 0xbb
jne 0x46847c
cmp byte [ebx + 2], 0xbf
jne 0x46847c
mov eax, dword [ebp + 0x18]
lea esi, [ebx + 3]
add eax, 0xfffffffd
mov edx, esi
push eax
mov ecx, edi
call fcn.00466940
add esp, 4
mov dword [0x5e95cc], 7
cmp byte [ebx], 0xef
jne 0x468475
cmp byte [ebx + 1], 0xbb
jne 0x468475
cmp byte [ebx + 2], 0xbf
je 0x468477
mov esi, ebx
push ecx
mov edx, esi
jmp 0x468494
push dword [ebp + 0x18]
mov edx, ebx
mov ecx, edi
call fcn.00466940
mov dword [0x5e95cc], 6
mov edx, ebx
call fcn.004672c0
add esp, 4
mov dword [0x5e95d8], eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4685f8
test eax, eax
je 0x46851d
mov eax, dword [ebp + 0x18]
push eax
push ebx
push ebx
call fcn.0058bb4a
mov edi, dword [ebp - 4]
xor eax, eax
add esp, 0xc
test edi, edi
sete al
lea eax, [eax*2 + 3]
mov dword [0x5e95cc], eax
mov eax, dword [ebp + 0x18]
lea eax, [eax + eax*2]
add eax, 2
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, dword [ebp + 0x18]
shr esi, 1
mov dword [ebp - 0x14], eax
test edi, edi
je 0x468530
lea ecx, [ebx + 2]
mov dword [ebp - 0x18], ecx
jmp 0x468534
xor eax, eax
cmp word [ebx], dx
sete al
mov dword [ebp - 4], eax
jmp 0x4684b1
xor ecx, ecx
mov eax, 0xfeff
cmp word [ebx], ax
sete cl
mov dword [ebp - 4], ecx
cmp esi, 5
je 0x4684b1
mov edi, dword [ebp - 4]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 2]
jmp 0x4684d0
inc esi
mov dword [ebp - 0x18], ebx
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GlobalSize]
push eax
push dword [ebp - 0x14]
push esi
push dword [ebp - 0x18]
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp + 0x18], eax
test eax, eax
jne 0x468590
push 0
test edi, edi
lea eax, [ebx + 2]
mov edi, dword [ebp - 0x14]
mov esi, ebx
push 0
push edi
cmovne esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalSize]
push eax
push edi
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [eax], 1
jmp 0x468593
mov edi, dword [ebp - 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
push ebx
call esi
mov ebx, dword [ebp - 8]
push 0
push 0xfde9
push 0x7f5
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov edx, 0x41695d
mov ecx, ebx
call fcn.00466940
mov edx, dword [ebp + 0x18]
add esp, 4
mov ecx, edi
push 0x5f0300
lea edx, [edx - 1]
call fcn.00472590
mov eax, dword [ebp + 0x18]
add esp, 4
dec eax
mov edx, edi
mov ecx, ebx
push eax
call fcn.00466940
mov edx, edi
call fcn.004672c0
add esp, 4
push edi
mov dword [0x5e95d8], eax
call esi
mov eax, 1
pop edi
pop esi
mov dword [0x5f0378], 0xffffffff
mov dword [0x5f0370], 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret