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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x570dec
mov eax, dword fs:[0]
push eax
sub esp, 0x2dc
mov eax, dword [0x5c3678]
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.0047da80
mov esi, 0x11c
push esi
xor ebx, ebx
push ebx
push 0x5cfa10
call fcn.00544310
add esp, 0xc
mov edi, 0x5cfa10
mov dword [0x5cfa10], esi
call fcn.0047d4f0
test eax, eax
jne 0x47dbae
push esi
push ebx
push edi
call fcn.00544310
add esp, 0xc
mov dword [0x5cfa10], esi
push ebx
push 0x57fde0
push 0x5cfb2c
call fcn.00423be0
push ebx
push 0x57fde0
push 0x5cfb34
call fcn.00423be0
push ebx
push 0x57fde0
push 0x5cfb38
call fcn.00423be0
push ebx
push 0x57fde0
push 0x5cfb40
call fcn.00423be0
push 1
push 0x580114
push 0x5cfb44
call fcn.00423be0
push ebx
push 0x57fde0
push 0x5cfb3c
call fcn.00423be0
lea eax, [ebp - 0x2e8]
push eax
mov ecx, 0x5cf3f8
call fcn.00423950
push 0xc
push str.360base.dll
lea edi, [ebp - 0x2e8]
mov dword [ebp - 4], ebx
call fcn.00423600
lea ecx, [ebp - 0x2e4]
push ecx
mov ecx, 0x5cf3f8
call fcn.00423950
mov eax, edi
mov edi, 0x5cee30
mov byte [ebp - 4], 1
call fcn.00423c70
lea eax, [ebp - 0x2e4]
mov edi, 0x5cee34
call fcn.00423c70
call fcn.0047b770
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
call fcn.00401790
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x2e4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47dc9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x5cfb50], 1
jne 0x47dd01
push 0xc6
lea edx, [ebp - 0xd6]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0xd8], cx
call fcn.00544310
add esp, 0xc
push 0x64
lea eax, [ebp - 0xd8]
push eax
call fcn.0055d760
test eax, eax
je 0x47dd01
lea eax, [ebp - 0xd8]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x47dce0
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0xd8]
push ecx
push 0x5cfb2c
call fcn.00423be0
mov ecx, 0x5cfb30
call fcn.004022c0
push 0x206
lea eax, [ebp - 0x2de]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x2e0], dx
call fcn.00544310
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
add esp, 0xc
push str.QHVer.dll
push 0x5cf3f8
lea ecx, [ebp - 0x2e0]
push ecx
call esi
lea edx, [ebp - 0x2e4]
push edx
lea ecx, [ebp - 0x2e0]
call fcn.0047b9c0
add esp, 4
mov edi, 0x5cfb34
mov byte [ebp - 4], 2
call fcn.00423c70
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 0x47dd8a
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.0047d5d0
mov edi, 0x5cfb48
mov byte [ebp - 4], 3
call fcn.00423c70
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 0x47ddce
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.00544310
add esp, 0xc
push 0x58d248
push 0x5cf3f8
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 0x47dfc5
mov ecx, dword [0x5cfb38]
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, 0x3e8
or eax, edx
jge 0x47de43
mov ecx, 0x3e8
mov eax, 0x5cfb38
call fcn.00423b90
mov ecx, dword [0x5cfb38]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x2e0]
push edx
push 0x3e8
push ecx
push 0x58a634
push 0x58a158
push 0x58a16c
call esi
mov eax, dword [0x5cfb38]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0053cd7d
mov ecx, dword [0x5cfb38]
mov dword [ecx - 0xc], eax
mov ecx, dword [0x5cfb38]
xor edx, edx
mov word [ecx + eax*2], dx
mov edx, dword [0x5cfb40]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x3e8
add esp, 8
or eax, ecx
jge 0x47debd
mov ecx, 0x3e8
mov eax, 0x5cfb40
call fcn.00423b90
mov edx, dword [0x5cfb40]
lea eax, [ebp - 0x2e0]
push eax
push 0x3e8
push edx
push 0x57fde0
push str.channel
push 0x58a16c
call esi
mov eax, dword [0x5cfb40]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0053cd7d
mov ecx, dword [0x5cfb40]
mov dword [ecx - 0xc], eax
mov ecx, dword [0x5cfb40]
xor edx, edx
mov word [ecx + eax*2], dx
mov edx, dword [0x5cfb44]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x3e8
add esp, 8
or eax, ecx
jge 0x47df31
mov ecx, 0x3e8
mov eax, 0x5cfb44
call fcn.00423b90
mov edx, dword [0x5cfb44]
lea eax, [ebp - 0x2e0]
push eax
push 0x3e8
push edx
push 0x57fde0
push str.schannel
push 0x58a16c
call esi
mov eax, dword [0x5cfb44]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0053cd7d
mov ecx, dword [0x5cfb44]
mov dword [ecx - 0xc], eax
mov ecx, dword [0x5cfb44]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [0x5cfb44]
add esp, 8
cmp dword [eax - 0xc], ebx
je 0x47dfb4
mov ecx, 0x58e3bc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47dfab
cmp dx, bx
je 0x47dfa7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47dfab
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x47df85
xor eax, eax
jmp 0x47dfb0
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x47dfc5
push 1
push 0x580114
push 0x5cfb44
call fcn.00423be0
push 0x1e
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
mov eax, 0x58e390
jne 0x47dfdb
mov eax, 0x58e398
mov edx, dword [0x5cfa18]
push eax
mov eax, dword [0x5cfa14]
push edx
push eax
push str._d._d__s
mov edi, 0x5cfb3c
call fcn.004235e0
add esp, 0x10
call fcn.004021a0
mov esi, eax
cmp byte [esi + 0x270], bl
jne 0x47e00f
call fcn.00401e10
cmp dword [esi], ebx
je 0x47e02a
mov esi, dword [esi + 0x230]
cmp esi, ebx
je 0x47e02a
push ebx
push 0x5cfcac
call esi
add esp, 8
jmp 0x47e02c
xor eax, eax
push 0x5cee34
mov ecx, 0x5cfb58
mov dword [0x5cfb54], eax
call fcn.00405cb0
push 0x5cfb44
push 0x5cfb40
push 0x5cfb3c
push 0x5cfb38
push 0x5cfb34
mov eax, 0x5cfb2c
call fcn.0052c770
push 0x5cee34
mov ecx, 0x5d0300
call fcn.00405cb0
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 0x47e09b
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.0053c15d
mov esp, ebp
pop ebp
ret