Function at 0x10014330
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x214
mov eax, dword [0x10071350]
xor eax, esp
mov dword [esp + 0x210], eax
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.100167a0
call fcn.10015660
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add eax, 8
mov eax, dword [eax]
push eax
xor ebx, ebx
push ebx
push str.LRHPFS
push str.BENBEN_HP
call edi
mov dword [esi + 0x90], eax
call fcn.10015660
add eax, 8
mov eax, dword [eax]
push eax
push 1
push str.ZDPD
push str.BENBEN_HP
call edi
mov dword [esi + 0x94], eax
call fcn.10015660
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add eax, 8
mov eax, dword [eax]
push eax
push 0x100
lea ecx, [esp + 0x28]
push ecx
push 0x1005d4f0
push str.HPFS
push str.BENBEN_HP
call ebp
lea edx, [esp + 0x20]
push edx
lea eax, [esi + 0x98]
push 0x10054c24
push eax
call fcn.100039d0
add esp, 0xc
call fcn.10015660
mov ecx, dword [eax + 8]
add eax, 8
push ecx
push 0x100
lea edx, [esp + 0x28]
push edx
push 0x1005d4ec
push str.SJDW
push str.BENBEN_HP
call ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esi + 0x9c]
push 0x10054c24
push ecx
call fcn.100039d0
add esp, 0xc
call fcn.10015660
add eax, 8
mov eax, dword [eax]
push eax
push 0xa
push str.HPJG
push str.BENBEN_HP
call edi
mov dword [esi + 0x8c], eax
call fcn.10015660
mov edx, dword [eax + 8]
add eax, 8
push edx
push 0x100
lea eax, [esp + 0x28]
push eax
push 0x10054c3b
push str.USER
push str.BENBEN_DL
call ebp
lea eax, [esp + 0x20]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10014466
sub eax, ecx
xor edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], bl
test eax, eax
jle 0x100144d2
lea esp, [esp]
mov cl, byte [esp + ebx + 0x20]
mov dl, byte [esp + ebx + 0x21]
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x14], cl
lea ecx, [esp + 0x14]
push 0x1005d4e0
push ecx
mov byte [esp + 0x1d], dl
call fcn.10027d83
mov eax, dword [esp + 0x20]
add eax, edi
mov byte [esp + edi + 0x12c], al
add ebx, 2
add esp, 0xc
inc edi
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
jl 0x10014490
lea edx, [esp + 0x120]
push edx
lea eax, [esi + 0xa4]
push 0x10054c24
push eax
mov byte [esp + edi + 0x12c], 0
call fcn.100039d0
add esp, 0xc
call fcn.10015660
mov ecx, dword [eax + 8]
add eax, 8
push ecx
push 0x100
lea edx, [esp + 0x28]
push edx
push 0x10054c3b
push str.PASS
push str.BENBEN_DL
call ebp
lea eax, [esp + 0x20]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10014524
sub eax, ecx
xor ebx, ebx
xor edi, edi
cmp eax, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
jle 0x1001458e
mov dword [esp + 0x1c], edi
mov al, byte [esp + edi + 0x20]
mov cl, byte [esp + edi + 0x21]
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x14], al
lea eax, [esp + 0x14]
push 0x1005d4e0
push eax
mov byte [esp + 0x1d], cl
call fcn.10027d83
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
sub eax, ecx
mov byte [esp + ebx + 0x12c], al
add ecx, 2
add edi, 2
add esp, 0xc
inc ebx
cmp edi, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
jl 0x10014541
lea ecx, [esp + 0x120]
push ecx
lea edx, [esi + 0xa8]
push 0x10054c24
push edx
mov byte [esp + ebx + 0x12c], 0
call fcn.100039d0
add esp, 0xc
call fcn.10015660
add eax, 8
mov eax, dword [eax]
push eax
push 0x100
lea ecx, [esp + 0x28]
push ecx
push 0x1005d4b0
push str.XZDQ
push str.BENBEN_DL
call ebp
lea edx, [esp + 0x20]
push edx
lea edi, [esi + 0xac]
push 0x10054c24
push edi
call fcn.100039d0
mov edi, dword [edi]
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub edi, 0x10
add esp, 8
mov dword [esp + 0x20], esp
mov ebp, esp
call edx
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x10014620
cmp eax, dword [edi]
jne 0x10014620
mov ebx, edi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x10014655
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x10014639
call fcn.100028a0
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 4]
inc eax
push eax
add edi, 0x10
push edi
push eax
lea ecx, [ebx + 0x10]
push ecx
call fcn.10026fcc
add esp, 0x10
add ebx, 0x10
mov ecx, esi
mov dword [ebp], ebx
call fcn.10013e10
call fcn.10015660
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add eax, 8
mov eax, dword [eax]
push eax
push 0
push 0x1005d4d4
push str.BENBEN_DL
call edi
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esi + 0x7c], eax
test eax, eax
jl 0x1001469f
mov edx, dword [esi + 0xd0]
push 0
push eax
push 0x14e
push edx
call ebx
call fcn.10015660
add eax, 8
mov eax, dword [eax]
push eax
push 1
push str.DLPD
push str.BENBEN_DL
call edi
mov dword [esi + 0x80], eax
test eax, eax
jl 0x100146d3
push 0
push eax
mov eax, dword [esi + 0x124]
push 0x14e
push eax
call ebx
push 0
mov ecx, esi
call fcn.100195b6
mov ecx, dword [esp + 0x220]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.10026ddc
add esp, 0x214
ret