Function at 0x438f40
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x44ec63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x42c
push ebx
push esi
mov edx, ecx
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x2a]
mov edx, dword [edx + 0x1c]
mov word [esp + 0x28], 0
push edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0x450]
lea ecx, [esp + 0x2c]
push 0x104
push ecx
mov eax, dword [eax]
push 0x4d6e34
push str.path
push eax
mov dword [esp + 0x38], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edx, dword [0x463290]
lea eax, [esp + 0x28]
test eax, eax
mov dword [esp + 0x10], edx
je 0x43900e
lea ecx, [esp + 0x28]
shr ecx, 0x10
jne 0x438fd6
xor eax, eax
lea edx, [esp + 0x28]
mov ax, dx
lea ecx, [esp + 0x10]
push eax
call fcn.004050d0
jmp 0x43900e
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
test esi, esi
je 0x43900e
push esi
lea ecx, [esp + 0x14]
call fcn.00402e70
test eax, eax
je 0x43900e
mov edi, dword [esp + 0x10]
lea ecx, [esi + esi]
mov edx, ecx
lea esi, [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, 1
lea ecx, [esp + 0x10]
mov dword [esp + 0x440], ebx
call fcn.00414e10
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_CharLowerW]
mov ecx, dword [0x463290]
mov edx, 0x4d6e34
test edx, edx
mov dword [esp + 0xc], ecx
je 0x439094
mov eax, edx
shr eax, 0x10
jne 0x43905b
xor eax, eax
mov ecx, edx
mov ax, cx
lea ecx, [esp + 0xc]
push eax
call fcn.004050d0
jmp 0x439094
push 0x4d6e34
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
test esi, esi
je 0x439094
push esi
lea ecx, [esp + 0x10]
call fcn.00402e70
test eax, eax
je 0x439094
mov edi, dword [esp + 0xc]
lea ecx, [esi + esi]
mov edx, ecx
mov esi, 0x4d6e34
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
push str._appdata_
lea ecx, [esp + 0x18]
mov byte [esp + 0x448], 2
call fcn.004154d0
cmp eax, 0xffffffff
je 0x439158
lea eax, [esp + 0x14]
push eax
call fcn.00411770
add esp, 4
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov byte [esp + 0x440], 3
je 0x43911a
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4390ea
mov edx, dword [0x463294]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4390f1
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x439101
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00404f60
jmp 0x43911a
lea ecx, [esp + 0xc]
call fcn.00402f00
mov esi, dword [esi]
mov dword [esp + 0xc], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x463294]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x439205
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x43920b
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.0044737a
add esp, 4
jmp 0x43920b
push 0
push 0x4697b8
lea ecx, [esp + 0x18]
call fcn.004154d0
cmp eax, 0xffffffff
je 0x439205
lea ecx, [esp + 0x14]
push ecx
call fcn.00411960
add esp, 4
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov byte [esp + 0x440], 4
je 0x4391d6
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4391a6
mov edx, dword [0x463294]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4391ad
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4391bd
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [esp + 0x14]
call fcn.00404f60
jmp 0x4391d6
lea ecx, [esp + 0xc]
call fcn.00402f00
mov esi, dword [esi]
mov dword [esp + 0xc], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x14]
mov edx, dword [0x463294]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x439205
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x439205
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xc]
push eax
call fcn.0044737a
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [0x463290]
mov dword [esp + 0x18], eax
push 0
push 0x4697b4
lea ecx, [esp + 0x18]
mov byte [esp + 0x448], 5
call fcn.004154d0
test eax, eax
je 0x439327
mov ebx, dword [esp + 0x448]
mov ecx, dword [0x463290]
mov edx, 0x4d6e34
test edx, edx
mov dword [ebx], ecx
je 0x43929f
mov eax, edx
shr eax, 0x10
jne 0x439264
xor eax, eax
mov ecx, edx
mov ax, cx
mov ecx, ebx
push eax
call fcn.004050d0
jmp 0x43929f
push 0x4d6e34
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
test esi, esi
je 0x43929f
push esi
mov ecx, ebx
call fcn.00402e70
test eax, eax
je 0x43929f
mov edi, dword [ebx]
lea ecx, [esi + esi]
mov edx, ecx
mov esi, 0x4d6e34
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x18]
mov edx, dword [0x463294]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4392ca
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4392ca
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.0044737a
add esp, 4
mov eax, dword [esp + 0xc]
mov edx, dword [0x463294]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4392f5
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4392f5
mov edx, dword [esp + 0xc]
add edx, 0xfffffff4
push edx
call fcn.0044737a
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x463294]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x439320
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x439320
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.0044737a
add esp, 4
mov eax, ebx
jmp 0x43958a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
mov eax, dword [eax - 8]
dec eax
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00415200
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x444], 6
call fcn.00402fa0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x463294]
mov byte [esp + 0x440], 5
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x439383
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x439383
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.0044737a
add esp, 4
push 0
push 0x4697b4
lea ecx, [esp + 0x18]
call fcn.004154d0
cmp eax, 0xffffffff
jne 0x4393b4
mov esi, dword [esp + 0x448]
push 0x4d6e34
mov ecx, esi
call fcn.00427bb0
mov dword [esp + 0x20], ebx
jmp 0x439555
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00415200
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x444], 7
call fcn.00402fa0
lea ecx, [esp + 0x14]
mov byte [esp + 0x440], 5
call fcn.0043c2e0
push 0x4697ac
lea ecx, [esp + 0x1c]
call fcn.00427e00
push 0x4697ac
lea ecx, [esp + 0x1c]
call fcn.00427d40
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x232]
mov word [esp + 0x230], 0
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc]
push 0x104
stosw word es:[edi], ax
lea eax, [esp + 0x234]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea edx, [esp + 0x230]
test edx, edx
jne 0x43944f
xor eax, eax
jmp 0x43945d
lea eax, [esp + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x230]
push ecx
push eax
lea ecx, [esp + 0x14]
call fcn.00404f60
mov edx, dword [esp + 0x18]
push 0x463600
mov eax, dword [edx - 8]
test eax, eax
lea eax, [esp + 0x10]
push eax
je 0x439518
lea ecx, [esp + 0x24]
push ecx
call fcn.00409a80
lea edx, [esp + 0x18]
mov byte [esp + 0x440], 8
push edx
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.00414ef0
push 0x463600
lea ecx, [esp + 0x18]
mov bl, 9
push eax
push ecx
mov byte [esp + 0x44c], bl
call fcn.00409a80
mov edx, dword [esp + 0x450]
mov esi, dword [esp + 0x448]
push edx
push eax
push esi
mov byte [esp + 0x44c], 0xa
call fcn.00414ef0
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], 1
mov byte [esp + 0x440], bl
call fcn.0043c2e0
lea ecx, [esp + 0x24]
mov byte [esp + 0x440], 8
call fcn.0043c2e0
mov byte [esp + 0x440], 5
lea ecx, [esp + 0x1c]
jmp 0x439550
lea ecx, [esp + 0x24]
push ecx
call fcn.00409a80
mov edx, dword [esp + 0x450]
mov esi, dword [esp + 0x448]
push edx
push eax
push esi
mov byte [esp + 0x44c], 0xb
call fcn.00414ef0
mov dword [esp + 0x20], ebx
mov byte [esp + 0x440], 5
lea ecx, [esp + 0x1c]
call fcn.0043c2e0
lea ecx, [esp + 0x18]
mov byte [esp + 0x440], 2
call fcn.0043c2e0
lea ecx, [esp + 0xc]
mov byte [esp + 0x440], 1
call fcn.0043c2e0
lea ecx, [esp + 0x10]
mov byte [esp + 0x440], 0
call fcn.0043c2e0
mov eax, esi
mov ecx, dword [esp + 0x438]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x438
ret 0xc