Function at 0x402800
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x4028
call fcn.00435100
mov eax, dword [0x457a00]
xor eax, esp
mov dword [esp + 0x4024], eax
push ebx
push ebp
push esi
push edi
push 0x1fff
lea eax, [esp + 0x39]
push 0
push eax
mov byte [esp + 0x40], 0
call fcn.00433570
push 0x1fff
lea ecx, [esp + 0x2045]
push 0
push ecx
mov byte [esp + 0x204c], 0
call fcn.00433570
xor eax, eax
push 1
push str.AT_d
lea edx, [esp + 0x34]
push 0x10
push edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
xor edi, edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x205c], eax
mov dword [esp + 0x2060], eax
mov dword [esp + 0x2064], eax
mov dword [esp + 0x2068], eax
call fcn.00430bb0
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0x28
push 0x45bc58
push 0x80
lea eax, [esp + 0x3c]
push eax
push 0x45029b
lea ecx, [esp + 0x24]
push ecx
push 0x44c940
call ebx
mov esi, eax
test esi, esi
je 0x402b3f
mov dword [esp + 0x10], 1
lea esp, [esp]
mov byte [esp + esi + 0x34], 0
mov dl, byte [esp + edi + 0x34]
add edi, 1
cmp dl, 0x3d
je 0x4028f5
cmp edi, esi
jl 0x4028e5
cmp edi, esi
je 0x402de7
lea eax, [edi - 1]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.0043dca0
sub esi, edi
push esi
lea eax, [esp + edi + 0x44]
push eax
lea ecx, [esp + 0x2048]
push ecx
call fcn.0043dca0
push 0x280
lea edx, [esp + 0x50]
push 0
push edx
call fcn.00433570
add esp, 0x24
push 0x45bb50
push 0x80
lea eax, [esp + 0x3c]
push eax
push 0x45029b
lea ecx, [esp + 0x24]
push ecx
push 0x44c940
xor ebp, ebp
call ebx
test eax, eax
je 0x402b3f
mov byte [esp + eax + 0x34], 0
jmp 0x402970
mov dl, byte [esp + ebp + 0x34]
add ebp, 1
cmp dl, 0x3d
je 0x402980
cmp ebp, eax
jl 0x402970
lea ecx, [ebp - 1]
cmp ecx, 4
lea edx, [esp + 0x34]
lea esi, [esp + 0x24]
jb 0x4029a4
mov edi, dword [esi]
cmp edi, dword [edx]
jne 0x4029a8
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x402990
test ecx, ecx
je 0x402a05
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x4029f7
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x402a05
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x4029f7
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x402a05
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x4029f7
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x402a05
movzx edi, byte [esi]
movzx ecx, byte [edx]
sub edi, ecx
je 0x402a05
test edi, edi
mov ecx, 1
jg 0x402a07
or ecx, 0xffffffff
jmp 0x402a07
xor ecx, ecx
test ecx, ecx
jne 0x402de7
cmp ebp, eax
je 0x402aaf
sub eax, ebp
cmp eax, 4
lea ecx, [esp + ebp + 0x34]
lea edx, [esp + 0x2034]
jb 0x402a44
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x402a48
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x402a30
test eax, eax
je 0x402aa5
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x402a97
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402aa5
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x402a97
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402aa5
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x402a97
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402aa5
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x402aa5
test esi, esi
mov eax, 1
jg 0x402aa7
or eax, 0xffffffff
jmp 0x402aa7
xor eax, eax
test eax, eax
jne 0x402de7
mov ecx, dword [esp + 0x10]
xor eax, eax
add ecx, 1
push ecx
push str.AT_d
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x203c], eax
mov dword [esp + 0x2040], eax
mov dword [esp + 0x2044], eax
mov dword [esp + 0x2048], eax
lea eax, [esp + 0x1c]
push 0x10
push eax
mov dword [esp + 0x20], ecx
xor edi, edi
call fcn.00430bb0
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0x10
push 0x45bc58
push 0x80
lea ecx, [esp + 0x3c]
push ecx
push 0x45029b
lea edx, [esp + 0x24]
push edx
push 0x44c940
call ebx
mov esi, eax
test esi, esi
jne 0x4028e0
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
xor edi, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2034], eax
mov dword [esp + 0x2038], eax
mov dword [esp + 0x203c], eax
mov dword [esp + 0x2040], eax
lea ebp, [ecx + 1]
push ebp
push str.NV_d
lea eax, [esp + 0x1c]
push 0x10
push eax
mov dword [esp + 0x20], ebp
call fcn.00430bb0
add esp, 0x10
push 0x45bc58
push 0x2000
lea ecx, [esp + 0x3c]
push ecx
push 0x45029b
lea edx, [esp + 0x24]
push edx
push 0x44c94c
call ebx
mov esi, eax
test esi, esi
je 0x402c25
mov byte [esp + esi + 0x34], 0
jmp 0x402bd0
mov al, byte [esp + edi + 0x34]
add edi, 1
cmp al, 0x2c
je 0x402bdf
cmp edi, esi
jl 0x402bd0
cmp edi, esi
je 0x402de7
lea ecx, [edi - 1]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.0043dca0
sub esi, edi
push esi
lea ecx, [esp + edi + 0x44]
push ecx
lea edx, [esp + 0x2048]
push edx
call fcn.0043dca0
push 0x2000
lea eax, [esp + 0x50]
push 0
push eax
call fcn.00433570
add esp, 0x24
xor edi, edi
push 0x45bb50
push 0x2000
lea ecx, [esp + 0x3c]
push ecx
push 0x45029b
lea edx, [esp + 0x24]
push edx
push 0x44c94c
call ebx
test eax, eax
je 0x402d95
mov byte [esp + eax + 0x34], 0
mov cl, byte [esp + edi + 0x34]
add edi, 1
cmp cl, 0x2c
je 0x402c62
cmp edi, eax
jl 0x402c52
lea ecx, [edi - 1]
cmp ecx, 4
lea edx, [esp + 0x34]
lea esi, [esp + 0x24]
jb 0x402c86
mov ebx, dword [esi]
cmp ebx, dword [edx]
jne 0x402c8a
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x402c72
test ecx, ecx
je 0x402ce7
movzx ebp, byte [esi]
movzx ebx, byte [edx]
sub ebp, ebx
jne 0x402cd9
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x402ce7
movzx ebp, byte [esi]
movzx ebx, byte [edx]
sub ebp, ebx
jne 0x402cd9
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x402ce7
movzx ebp, byte [esi]
movzx ebx, byte [edx]
sub ebp, ebx
jne 0x402cd9
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x402ce7
movzx ebp, byte [esi]
movzx edx, byte [edx]
sub ebp, edx
je 0x402ce7
test ebp, ebp
mov ecx, 1
jg 0x402ce9
or ecx, 0xffffffff
jmp 0x402ce9
xor ecx, ecx
test ecx, ecx
jne 0x402de7
cmp edi, eax
je 0x402d8b
sub eax, edi
cmp eax, 4
lea ecx, [esp + edi + 0x34]
lea edx, [esp + 0x2034]
jb 0x402d24
jmp 0x402d10
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x402d28
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x402d10
test eax, eax
je 0x402d85
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x402d77
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402d85
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x402d77
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402d85
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x402d77
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402d85
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x402d85
test esi, esi
mov eax, 1
jg 0x402d87
or eax, 0xffffffff
jmp 0x402d87
xor eax, eax
test eax, eax
jne 0x402de7
mov ebp, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
xor eax, eax
mov ecx, ebp
xor edi, edi
cmp ecx, 0x3ff
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2034], eax
mov dword [esp + 0x2038], eax
mov dword [esp + 0x203c], eax
mov dword [esp + 0x2040], eax
jle 0x402b81
mov al, 1
jmp 0x402de9
xor al, al
mov ecx, dword [esp + 0x4034]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042fb8f
add esp, 0x4028
ret