Function at 0x403651
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
and dword [ebp - 8], 0
mov ax, word [0x406384]
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
mov word [ebp - 2], ax
je 0x403723
push 1
pop edx
cmp dword [ebp + 0xc], edx
jb 0x403723
mov eax, dword [ebp + 0x14]
or ebx, 0xffffffff
mov ecx, ebx
lea esi, [ebp - 0x10c]
lea edi, [eax + 0x30c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp + 0x14], esi
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x10c]
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ebp + ecx - 0x10d], 0x5c
jne 0x4036e0
lea edi, [ebp - 0x10c]
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
and byte [ebp + ecx - 0x10d], al
lea edi, [ebp - 0x10c]
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
jb 0x403723
lea edi, [ebp - 0x10c]
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebp + ecx - 0x10d]
test eax, eax
je 0x403723
lea ecx, [ebp - 0x10c]
cmp eax, ecx
je 0x403730
mov cl, byte [eax]
test cl, cl
je 0x403730
cmp cl, 0x5c
je 0x40372a
dec eax
jne 0x40370b
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
and byte [eax], 0
mov dword [ebp - 8], edx
test eax, eax
je 0x403754
lea ecx, [ebp - 0x10c]
cmp eax, ecx
je 0x403754
mov cl, byte [eax]
test cl, cl
je 0x403754
cmp cl, 0x5c
je 0x40374e
dec eax
jne 0x403734
jmp 0x403754
and byte [eax], 0
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x403723
mov edx, str.SeP_AT.ini
mov ecx, ebx
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x10c]
mov esi, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
cmp esi, 0x104
jae 0x403723
mov edi, edx
mov ecx, ebx
repne scasb al, byte es:[edi]
lea esi, [ebp - 0x10c]
not ecx
mov eax, esi
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, eax
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp + 0x10], eax
lea eax, [ebp - 0x10c]
push eax
push dword [ebp + 0xc]
rep movsb byte es:[edi], byte [esi]
je 0x4037ed
mov esi, dword [ebp + 8]
lea eax, [ebp - 2]
push esi
push eax
push str.PATH
push str.SuccessLog
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x210]
push str.SePAtScs.log
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
jmp 0x40381b
push dword [ebp + 8]
lea eax, [ebp - 2]
push eax
push str.PATH
push str.ErrorLog
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x210]
push str.SePAtErr.log
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [ebp + 8]
pop ecx
pop ecx
mov edi, esi
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jbe 0x403723
mov al, byte [esi]
cmp al, byte [ebp - 2]
je 0x403723
mov edi, esi
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x210]
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 1]
cmp eax, dword [ebp + 0xc]
jae 0x403723
mov edi, esi
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + esi - 1], 0x5c
je 0x40389a
mov edi, 0x40605c
mov ecx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 8]
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x210]
mov ecx, ebx
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 8]
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
pop eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x403725