Function at 0x41cd70
Capabilities:
Check if file exists
Read .ini file
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x45c4f6
mov eax, dword fs:[0]
push eax
sub esp, 0x764
mov eax, dword [0x4713c0]
xor eax, esp
mov dword [esp + 0x760], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4713c0]
xor eax, esp
push eax
lea eax, [esp + 0x778]
mov dword fs:[0], eax
xor ebp, ebp
lea edi, [esp + 0x78]
mov dword [esp + 0x34], ebp
call fcn.00427ff0
mov dword [esp + 0x780], ebp
cmp dword [esp + 0x8c], ebp
jne 0x41cdd7
cmp dword [esp + 0x90], 8
jmp 0x41d51e
mov dword [esp + 0xac], 7
mov dword [esp + 0xa8], ebp
mov word [esp + 0x98], bp
mov byte [esp + 0x780], 1
cmp dword [0x474f6c], ebp
push 0xffffffffffffffff
lea ecx, [esp + 0x98]
push ebp
mov eax, 0x474f90
jne 0x41ce15
mov eax, 0x4750e8
call fcn.00406d10
cmp dword [esp + 0x90], 8
mov eax, dword [esp + 0x7c]
jae 0x41ce2c
lea eax, [esp + 0x7c]
push eax
push ebp
push str.nCount
push str.History
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor esi, esi
cmp eax, ebp
mov dword [esp + 0x38], eax
jbe 0x41d1ae
push 0x9e
lea ecx, [esp + 0xd2]
push ebp
push ecx
mov word [esp + 0xd8], bp
call fcn.00446fa0
add esp, 0xc
push 0x206
lea edx, [esp + 0x172]
push ebp
push edx
mov word [esp + 0x178], bp
call fcn.00446fa0
add esp, 0xc
add esi, 1
push esi
lea eax, [esp + 0xd0]
push str.strQTalkPath_d
push eax
mov dword [esp + 0x48], esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [esp + 0x88]
mov ebx, 8
add esp, 0xc
cmp dword [esp + 0x90], ebx
jae 0x41cebf
lea eax, [esp + 0x7c]
push eax
push 0x104
lea ecx, [esp + 0x174]
push ecx
push 0x46278c
lea edx, [esp + 0xdc]
push edx
push str.History
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, 7
lea eax, [esp + 0x16c]
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebp
mov word [esp + 0x60], bp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x41cf01
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x170]
push eax
lea esi, [esp + 0x64]
call fcn.00406f80
mov byte [esp + 0x780], 2
cmp dword [esp + 0x74], ebx
mov edx, dword [esp + 0x60]
jae 0x41cf38
lea edx, [esp + 0x60]
mov eax, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebp
mov word [esp + 0x1c], bp
lea esi, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x41cf50
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x20]
call fcn.00406f80
mov ecx, esi
mov byte [esp + 0x780], 3
or dword [esp + 0x34], 1
push ecx
call fcn.0041e3a0
add esp, 4
cmp eax, 3
je 0x41cf9b
cmp eax, 2
je 0x41cf9b
cmp eax, 4
je 0x41cf9b
cmp eax, 6
je 0x41cf9b
cmp eax, 5
jne 0x41cfcf
cmp dword [esp + 0xac], ebx
mov eax, dword [esp + 0x98]
jae 0x41cfb2
lea eax, [esp + 0x98]
mov edi, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x60]
call fcn.00411070
test eax, eax
je 0x41cfcf
mov bl, 1
jmp 0x41cfd1
xor bl, bl
mov dword [esp + 0x780], 2
test byte [esp + 0x34], 1
mov edi, 8
je 0x41d000
and dword [esp + 0x34], 0xfffffffe
cmp dword [esp + 0x30], edi
jb 0x41d000
mov edx, dword [esp + 0x1c]
push edx
call fcn.004415cb
add esp, 4
test bl, bl
je 0x41d184
cmp dword [esp + 0x74], edi
mov edx, dword [esp + 0x60]
jae 0x41d016
lea edx, [esp + 0x60]
mov ebx, 7
mov eax, edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebp
mov word [esp + 0x1c], bp
lea esi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x41d030
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x20]
call fcn.00406f80
mov ecx, esi
mov byte [esp + 0x780], 4
call fcn.00420ff0
mov byte [esp + 0x780], 2
cmp dword [esp + 0x30], edi
jb 0x41d074
mov eax, dword [esp + 0x1c]
push eax
call fcn.004415cb
add esp, 4
cmp dword [esp + 0x74], edi
mov eax, dword [esp + 0x60]
jae 0x41d082
lea eax, [esp + 0x60]
push eax
push str.DeleteVersionFolder__s__n
lea ecx, [esp + 0x37c]
push 0x200
push ecx
call fcn.004414db
add esp, 0x10
lea ecx, [esp + 0x40]
mov word [esp + 0x772], bp
call fcn.0042bd40
mov byte [esp + 0x780], 5
lea eax, [esp + 0x374]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebp
mov word [esp + 0x1c], bp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x41d0d0
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x378]
push edx
lea esi, [esp + 0x20]
call fcn.00406f80
mov eax, esi
push ebp
push eax
or eax, 0xffffffff
lea esi, [esp + 0x48]
mov byte [esp + 0x788], 6
call fcn.00406df0
cmp dword [esp + 0x30], edi
jb 0x41d11c
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004415cb
add esp, 4
cmp dword [esp + 0x58], edi
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebp
mov word [esp + 0x1c], bp
jae 0x41d137
lea edx, [esp + 0x44]
mov edi, dword [0x474bb0]
cmp edi, ebp
je 0x41d170
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x41d146
sub eax, esi
sar eax, 1
push edi
add eax, eax
push eax
push 1
push edx
call fcn.004422ed
mov ecx, dword [0x474bb0]
push ecx
call fcn.004428a9
add esp, 0x14
cmp dword [esp + 0x58], 8
jb 0x41d184
mov edx, dword [esp + 0x44]
push edx
call fcn.004415cb
add esp, 4
mov byte [esp + 0x780], 1
cmp dword [esp + 0x74], 8
jb 0x41d1a0
mov eax, dword [esp + 0x60]
push eax
call fcn.004415cb
add esp, 4
mov esi, dword [esp + 0x3c]
cmp esi, dword [esp + 0x38]
jb 0x41ce4c
lea ecx, [esp + 0xb0]
call fcn.00427a10
mov byte [esp + 0x780], 7
mov edx, dword [esp + 0xb4]
mov edi, 8
cmp dword [esp + 0xc8], edi
jae 0x41d1de
lea edx, [esp + 0xb4]
mov eax, edx
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebp
mov word [esp + 0x44], bp
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x41d1f4
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x48]
call fcn.00406f80
mov ecx, esi
push ecx
mov byte [esp + 0x784], 8
call fcn.0041e3a0
add esp, 4
cmp eax, 3
je 0x41d23e
cmp eax, 2
je 0x41d23e
cmp eax, 4
je 0x41d23e
cmp eax, 6
je 0x41d23e
cmp eax, 5
je 0x41d23e
xor esi, esi
jmp 0x41d243
mov esi, 1
mov byte [esp + 0x780], 7
cmp dword [esp + 0x58], edi
jb 0x41d25e
mov edx, dword [esp + 0x44]
push edx
call fcn.004415cb
add esp, 4
cmp esi, ebp
je 0x41d317
mov edi, dword [esp + 0xc8]
cmp edi, 8
mov ebp, dword [esp + 0xb4]
mov edx, ebp
jae 0x41d282
lea edx, [esp + 0xb4]
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d287
sub eax, esi
sar eax, 1
push edx
mov ebx, eax
xor eax, eax
lea edx, [esp + 0x98]
call fcn.0040e1e0
cmp eax, 0xffffffff
jne 0x41d317
cmp edi, 8
mov edx, ebp
jae 0x41d2ba
lea edx, [esp + 0xb4]
xor edi, edi
mov ebx, 7
mov eax, edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edi
mov word [esp + 0x44], di
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x41d2d3
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x48]
call fcn.00406f80
mov ecx, esi
mov byte [esp + 0x780], 9
call fcn.00420ff0
mov byte [esp + 0x780], bl
cmp dword [esp + 0x58], 8
jb 0x41d317
mov eax, dword [esp + 0x44]
push eax
call fcn.004415cb
add esp, 4
mov edx, dword [esp + 0x7c]
mov ebp, 8
cmp dword [esp + 0x90], ebp
jae 0x41d32d
lea edx, [esp + 0x7c]
xor edi, edi
mov ebx, 7
mov eax, edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov word [esp + 0x1c], di
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x41d346
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x20]
call fcn.00406f80
mov byte [esp + 0x780], 0xa
cmp dword [esp + 0x30], ebp
mov eax, dword [esp + 0x1c]
jae 0x41d376
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov byte [esp + 0x780], 7
cmp dword [esp + 0x30], ebp
mov esi, eax
jb 0x41d39a
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004415cb
add esp, 4
cmp esi, edi
je 0x41d4b9
lea edx, [esp + 0x78]
push edx
call fcn.00424410
add esp, 4
push 0x464d50
lea eax, [esp + 0x378]
push 0x200
push eax
call fcn.004414db
add esp, 0xc
lea ecx, [esp + 0x40]
mov word [esp + 0x772], di
call fcn.0042bd40
mov byte [esp + 0x780], 0xb
lea eax, [esp + 0x374]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov word [esp + 0x1c], di
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x41d400
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x378]
push ecx
lea esi, [esp + 0x20]
call fcn.00406f80
mov edx, esi
push edi
push edx
or eax, 0xffffffff
lea esi, [esp + 0x48]
mov byte [esp + 0x788], 0xc
call fcn.00406df0
cmp dword [esp + 0x30], ebp
jb 0x41d44c
mov eax, dword [esp + 0x1c]
push eax
call fcn.004415cb
add esp, 4
cmp dword [esp + 0x58], ebp
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov word [esp + 0x1c], di
jae 0x41d467
lea edx, [esp + 0x44]
mov ebx, dword [0x474bb0]
cmp ebx, edi
je 0x41d4a1
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x41d476
sub eax, esi
sar eax, 1
push ebx
lea ecx, [eax + eax]
push ecx
push 1
push edx
call fcn.004422ed
mov edx, dword [0x474bb0]
push edx
call fcn.004428a9
add esp, 0x14
cmp dword [esp + 0x58], ebp
jb 0x41d4b4
mov eax, dword [esp + 0x44]
push eax
call fcn.004415cb
add esp, 4
mov ebx, 7
cmp dword [esp + 0xc8], ebp
jb 0x41d4d2
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.004415cb
add esp, 4
cmp dword [esp + 0xac], ebp
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], edi
mov word [esp + 0xb4], di
jb 0x41d501
mov edx, dword [esp + 0x98]
push edx
call fcn.004415cb
add esp, 4
cmp dword [esp + 0x90], ebp
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], edi
mov word [esp + 0x98], di
jb 0x41d52d
mov eax, dword [esp + 0x7c]
push eax
call fcn.004415cb
add esp, 4
mov ecx, dword [esp + 0x778]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x760]
xor ecx, esp
call fcn.004414cc
add esp, 0x770
ret