Function at 0x42f780
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49ca0c
mov eax, dword fs:[0]
push eax
sub esp, 0x2dc
mov eax, dword [0x4c17d0]
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
call fcn.0042f6c0
mov esi, 0x11c
push esi
xor ebx, ebx
push ebx
push 0x4edba8
call fcn.0047e260
add esp, 0xc
mov edi, 0x4edba8
mov dword [0x4edba8], esi
call fcn.0042f130
test eax, eax
jne 0x42f7ee
push esi
push ebx
push edi
call fcn.0047e260
add esp, 0xc
mov dword [0x4edba8], esi
push ebx
push 0x4a3cf0
push 0x4edcc4
call fcn.004168e0
push ebx
push 0x4a3cf0
push 0x4edccc
call fcn.004168e0
push ebx
push 0x4a3cf0
push 0x4edcd0
call fcn.004168e0
push ebx
push 0x4a3cf0
push 0x4edcd8
call fcn.004168e0
push 1
push 0x4a3fd4
push 0x4edcdc
call fcn.004168e0
push ebx
push 0x4a3cf0
push 0x4edcd4
call fcn.004168e0
lea eax, [ebp - 0x2e8]
push eax
mov ecx, 0x4ed590
call fcn.00416680
push 0xc
push 0x4b0498
lea ecx, [ebp - 0x2e8]
push ecx
mov dword [ebp - 4], ebx
call fcn.00416270
lea edx, [ebp - 0x2e4]
push edx
mov ecx, 0x4ed590
call fcn.00416680
lea eax, [ebp - 0x2e8]
mov edi, 0x4ed08c
mov byte [ebp - 4], 1
call fcn.00416980
lea eax, [ebp - 0x2e4]
mov edi, 0x4ed090
call fcn.00416980
call fcn.0042d540
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
call fcn.004017f0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x2e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f8e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x4edce8], 1
jne 0x42f943
push 0xc6
lea edx, [ebp - 0xd6]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0xd8], cx
call fcn.0047e260
add esp, 0xc
push 0x64
lea eax, [ebp - 0xd8]
push eax
call fcn.00494cd0
test eax, eax
je 0x42f943
lea eax, [ebp - 0xd8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x42f922
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0xd8]
push ecx
push 0x4edcc4
call fcn.004168e0
mov ecx, 0x4edcc8
call fcn.00402100
push 0x206
lea eax, [ebp - 0x2de]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x2e0], dx
call fcn.0047e260
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
add esp, 0xc
push str.QHVer.dll
push 0x4ed590
lea ecx, [ebp - 0x2e0]
push ecx
call esi
lea edx, [ebp - 0x2e4]
push edx
lea ecx, [ebp - 0x2e0]
call fcn.0042d750
add esp, 4
mov edi, 0x4edccc
mov byte [ebp - 4], 2
call fcn.00416980
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x2e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f9cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edx, [ebp - 0x2e0]
lea ecx, [ebp - 0x2e4]
call fcn.0042f210
mov edi, 0x4edce0
mov byte [ebp - 4], 3
call fcn.00416980
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x2e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fa10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x206
lea edx, [ebp - 0x2de]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x2e0], cx
call fcn.0047e260
add esp, 0xc
push str.config.ini
push 0x4ed590
lea eax, [ebp - 0x2e0]
push eax
call esi
lea ecx, [ebp - 0x2e0]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42fc1c
mov edx, dword [0x4edcd0]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x3e8
or eax, ecx
jge 0x42fa85
mov ecx, 0x3e8
mov eax, 0x4edcd0
call fcn.00416890
mov edx, dword [0x4edcd0]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x2e0]
push eax
push 0x3e8
push edx
push 0x4abdb4
push str.language
push 0x4aba2c
call esi
mov eax, dword [0x4edcd0]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0047863d
add esp, 8
cmp eax, ebx
jl 0x42fc82
mov ecx, dword [0x4edcd0]
cmp eax, dword [ecx - 8]
jg 0x42fc82
mov dword [ecx - 0xc], eax
mov edx, dword [0x4edcd0]
xor ecx, ecx
mov word [edx + eax*2], cx
mov edx, dword [0x4edcd8]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x3e8
or eax, ecx
jge 0x42fb10
mov ecx, 0x3e8
mov eax, 0x4edcd8
call fcn.00416890
mov edx, dword [0x4edcd8]
lea eax, [ebp - 0x2e0]
push eax
push 0x3e8
push edx
push 0x4a3cf0
push str.channel
push 0x4aba2c
call esi
mov eax, dword [0x4edcd8]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0047863d
add esp, 8
cmp eax, ebx
jl 0x42fc82
mov ecx, dword [0x4edcd8]
cmp eax, dword [ecx - 8]
jg 0x42fc82
mov dword [ecx - 0xc], eax
mov edx, dword [0x4edcd8]
xor ecx, ecx
mov word [edx + eax*2], cx
mov edx, dword [0x4edcdc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x3e8
or eax, ecx
jge 0x42fb95
mov ecx, 0x3e8
mov eax, 0x4edcdc
call fcn.00416890
mov edx, dword [0x4edcdc]
lea eax, [ebp - 0x2e0]
push eax
push 0x3e8
push edx
push 0x4a3cf0
push str.schannel
push 0x4aba2c
call esi
mov eax, dword [0x4edcdc]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0047863d
add esp, 8
cmp eax, ebx
jl 0x42fc82
mov ecx, dword [0x4edcdc]
cmp eax, dword [ecx - 8]
jg 0x42fc82
mov dword [ecx - 0xc], eax
mov edx, dword [0x4edcdc]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [0x4edcdc]
cmp dword [eax - 0xc], ebx
je 0x42fc0b
push 0x4edcdc
mov ecx, 0x4b04dc
call fcn.0042fd20
add esp, 4
test al, al
je 0x42fc1c
push 1
push 0x4a3fd4
push 0x4edcdc
call fcn.004168e0
push 0x1e
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
mov eax, 0x4b04e0
jne 0x42fc32
mov eax, 0x4b04e8
mov ecx, dword [0x4edbb0]
mov edx, dword [0x4edbac]
push eax
push ecx
push edx
push 0x4b04f0
mov edi, 0x4edcd4
call fcn.00416250
add esp, 0x10
call fcn.004020a0
mov esi, eax
cmp byte [esi + 0x270], bl
jne 0x42fc67
call fcn.00401d50
cmp dword [esi], ebx
je 0x42fc8c
mov esi, dword [esi + 0x230]
cmp esi, ebx
je 0x42fc8c
push ebx
push 0x4ede44
call esi
add esp, 8
jmp 0x42fc8e
push 0x80070057
call fcn.00416a90
xor eax, eax
push 0x4edcf0
mov ecx, 0x4ed090
mov dword [0x4edcec], eax
call fcn.00404680
push 0x4edcdc
push 0x4edcd8
push 0x4edcd4
push 0x4edcd0
push 0x4edccc
mov eax, 0x4edcc4
call fcn.004505a0
push 0x4ee348
mov ecx, 0x4ed090
call fcn.00404680
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2e8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fcfd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
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.00477b1d
mov esp, ebp
pop ebp
ret