Function at 0x403bdd
Capabilities:
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x434
mov eax, dword [0x40e004]
xor eax, esp
mov dword [esp + 0x430], eax
push ebx
push esi
mov dword [esp + 0x18], ecx
xor ebx, ebx
push edi
mov ecx, 0x40eea4
mov byte [esp + 0x20], bl
mov byte [esp + 0x228], bl
call fcn.00402675
test eax, eax
jne 0x403c25
mov edi, 0x45f
jmp 0x4045a8
mov esi, 0x410c60
lea eax, [esp + 0x20]
push esi
push 0x208
push eax
push 0x401060
mov edx, 0x401290
mov ecx, 0x401298
call fcn.00402ad1
test eax, eax
js 0x4045b8
mov edi, dword [sym.imp.KERNEL32.dll_CompareStringA]
lea eax, [esp + 0x20]
push 0xffffffffffffffff
push 0x401284
push 0xffffffffffffffff
push eax
push 1
push 0x7f
call edi
dec eax
dec eax
je 0x403c79
mov edi, 0x475
jmp 0x4045a8
mov ecx, 0x40eea4
call fcn.004035f5
test eax, eax
je 0x4045b8
cmp byte [0x410a20], bl
je 0x403cc7
cmp byte [0x410c60], bl
je 0x403cc7
mov ecx, 0x410a20
call fcn.004035f5
test eax, eax
je 0x4045b8
push 0x410a20
push 0x50
push 0x410250
mov eax, 0x40120c
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ecx
push ebx
mov edx, 0x4012bc
call fcn.00402b69
test eax, eax
je 0x403ce3
mov dword [0x4108b4], 0x865
jmp 0x403d4a
push esi
push 0x208
lea eax, [esp + 0x28]
mov esi, 0x4012c8
push eax
push esi
mov edx, 0x4012e0
mov ecx, 0x401064
call fcn.00402ad1
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
lea eax, [esp + 0x2c]
push eax
push 1
push 0x7f
call edi
dec eax
dec eax
jne 0x403d23
mov dword [0x4108b4], 0x864
jmp 0x403d4a
push 0xffffffffffffffff
push 0x4012bc
push 0xffffffffffffffff
lea eax, [esp + 0x2c]
push eax
push 1
push 0x7f
call edi
sub eax, 2
neg eax
sbb eax, eax
neg eax
add eax, 0x865
mov dword [0x4108b4], eax
push ecx
push ebx
mov edx, 0x4012f0
call fcn.00402b69
mov dword [0x4108b8], eax
mov esi, 0x40e294
mov dword [0x4108bc], ebx
mov edx, dword [esi - 4]
push ecx
push ebx
call fcn.00402b69
test eax, eax
je 0x403d7c
mov eax, dword [esi]
or dword [0x4108bc], eax
add esi, 8
cmp esi, 0x40e2dc
jl 0x403d66
mov esi, 0x410c60
lea eax, [esp + 0x20]
push esi
push 0x208
push eax
push 0x401060
mov edx, 0x40137c
mov ecx, 0x401064
call fcn.00402ad1
movsx eax, byte [esp + 0x20]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x42
je 0x403dcc
cmp eax, 0x50
mov eax, dword [0x4108bc]
jne 0x403ddb
or eax, 0x40
jmp 0x403dd6
mov eax, dword [0x4108bc]
or eax, 0x80
mov dword [0x4108bc], eax
test al, 0xc0
je 0x403e4c
lea eax, [esp + 0x20]
push 0x22
push eax
call dword [sym.imp.msvcrt.dll_strchr]
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x403dfe
mov edi, 0x47f
jmp 0x4045a8
inc esi
push 0x22
push esi
call dword [sym.imp.msvcrt.dll_strchr]
pop ecx
pop ecx
test eax, eax
je 0x403df4
mov ecx, esi
mov byte [eax], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403e15
sub ecx, edx
lea eax, [ecx + 1]
push eax
push 0x40
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [0x4108a4], eax
test eax, eax
je 0x4045a3
mov edx, dword [esp + 0x10]
mov ecx, eax
push esi
call fcn.00401a45
mov esi, 0x410c60
push ecx
push ebx
mov edx, 0x40130c
call fcn.00402b69
test eax, eax
je 0x403e66
or dword [0x4108bc], 0x10000
push esi
push 0x104
push 0x40fa40
push 0x401060
mov edx, 0x40134c
mov ecx, 0x401064
call fcn.00402ad1
push esi
push 0x104
push 0x410390
push 0x401390
mov edx, 0x40135c
mov ecx, 0x401064
call fcn.00402ad1
push esi
push 0x208
lea eax, [esp + 0x28]
mov edx, 0x40131c
push eax
push 0x4011cc
mov ecx, 0x401064
call fcn.00402ad1
push 0xffffffffffffffff
push dword [0x4017f4]
lea eax, [esp + 0x28]
push 0xffffffffffffffff
push eax
push 1
push 0x7f
pop esi
push esi
call edi
dec eax
dec eax
jne 0x403eea
or dword [0x4108bc], 0x20000
jmp 0x403f2f
push 0xffffffffffffffff
push dword [0x4017f8]
lea eax, [esp + 0x28]
push 0xffffffffffffffff
push eax
push 1
push esi
call edi
dec eax
dec eax
jne 0x403f0e
or dword [0x4108bc], 0x40000
jmp 0x403f2f
push 0xffffffffffffffff
push 0x4011cc
push 0xffffffffffffffff
lea eax, [esp + 0x2c]
push eax
push 1
push esi
call edi
dec eax
dec eax
jne 0x403f2f
or dword [0x4108bc], 0x80000
push 0x410c60
push 0x208
lea eax, [esp + 0x28]
mov edx, 0x4013ac
push eax
push 0x401060
mov ecx, 0x401064
call fcn.00402ad1
cmp byte [esp + 0x20], bl
jne 0x403f7e
push ecx
mov esi, 0x3e7
mov edx, 0x4013bc
push esi
call fcn.00402b69
mov dword [0x4108ac], eax
cmp eax, esi
je 0x403fe5
mov dword [0x4108a8], 0x4013cc
jmp 0x403ff9
push 0xffffffffffffffff
push 0x4013d4
push 0xffffffffffffffff
lea eax, [esp + 0x2c]
push eax
push 1
push esi
call edi
dec eax
dec eax
jne 0x403fa1
mov dword [0x4108a8], 0x4013d4
jmp 0x403fef
push 0xffffffffffffffff
push 0x4013cc
push 0xffffffffffffffff
lea eax, [esp + 0x2c]
push eax
push 1
push esi
call edi
dec eax
dec eax
jne 0x403fc4
mov dword [0x4108a8], 0x4013cc
jmp 0x403fef
push 0xffffffffffffffff
push 0x4013d8
push 0xffffffffffffffff
lea eax, [esp + 0x2c]
push eax
push 1
push esi
call edi
dec eax
mov dword [0x4108a8], 0x4013d8
dec eax
je 0x403fef
mov dword [0x4108a8], 0x4013c4
mov dword [0x4108ac], 7
mov edi, 0x410c60
mov dword [0x4108c4], ebx
push edi
push 0x208
lea eax, [esp + 0x28]
mov edx, 0x401340
push eax
push 0x401334
mov ecx, 0x401064
call fcn.00402ad1
cmp byte [esp + 0x20], bl
je 0x40407c
lea esi, [esp + 0x20]
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
inc esi
pop ecx
cmp eax, 0x41
je 0x404071
cmp eax, 0x49
je 0x40405f
cmp eax, 0x4e
je 0x404056
cmp eax, 0x53
jne 0x404078
or dword [0x4108c4], 4
jmp 0x404078
and dword [0x4108c4], 0xfffffffe
jmp 0x404078
mov eax, dword [0x4108c4]
and eax, 0xfffffffd
or eax, 1
mov dword [0x4108c4], eax
jmp 0x404078
or dword [0x4108c4], 3
cmp byte [esi], bl
jne 0x40402d
push ecx
push ebx
mov edx, 0x4013e0
call fcn.00402b69
mov dword [0x4108cc], eax
mov esi, 0x40e020
push dword [esi + 4]
mov edx, dword [esi - 0xc]
push dword [esi]
mov ecx, dword [esi - 0x10]
push dword [esi - 4]
push dword [esi - 8]
call fcn.00402ad1
test eax, eax
js 0x4045b8
mov edx, dword [esi + 8]
test edx, edx
je 0x4040c3
mov eax, dword [esi - 4]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [edx], ecx
add esi, 0x1c
cmp esi, 0x40e11c
jl 0x404092
cmp dword [0x4108b4], 0x866
jne 0x4040f6
push ecx
mov ecx, dword [esp + 0x20]
mov edx, 0x40f32c
push 0x40f93c
call fcn.0040bb77
test eax, eax
je 0x4045b8
push edi
push 0x50
push 0x4102f0
push 0x401060
mov edx, 0x401234
mov ecx, 0x401064
call fcn.00402ad1
test eax, eax
jg 0x404120
mov edi, 0x476
jmp 0x4045a8
mov ecx, 0x410a20
call fcn.004028ac
mov edi, 0x40eea4
mov esi, eax
mov ecx, edi
call fcn.004028ac
cmp eax, esi
jbe 0x40414b
mov ecx, edi
call fcn.004028ac
mov edi, eax
mov dword [esp + 0x18], edi
jmp 0x40415b
mov ecx, 0x410a20
call fcn.004028ac
mov edi, eax
mov dword [esp + 0x18], eax
push edi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push edi
push 0x40
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test esi, esi
je 0x4045a3
test edi, edi
je 0x4045a3
mov eax, dword [esp + 0x18]
mov ecx, 0x4102f0
push ecx
shr eax, 1
xor edx, edx
push eax
push edi
push 0x401060
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
call fcn.00402ad1
cmp byte [edi], bl
je 0x4042a3
push edi
mov edx, 0x208
lea ecx, [esp + 0x24]
call fcn.00401a45
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4041bf
sub ecx, edx
lea eax, [esp + 0x228]
inc ecx
lea edx, [esp + 0x20]
add edi, ecx
mov ecx, 0x4102f0
push ecx
push 0x104
push eax
push 0x401060
call fcn.00402ad1
cmp byte [0x410a20], bl
je 0x40420d
push ecx
push 0x410a20
push dword [esp + 0x20]
mov edx, esi
lea ecx, [esp + 0x2c]
call fcn.00406007
test eax, eax
jne 0x404226
push ecx
push 0x40eea4
push dword [esp + 0x20]
mov edx, esi
lea ecx, [esp + 0x2c]
call fcn.00406007
test eax, eax
je 0x404287
js 0x404280
push 0x401060
lea ecx, [esp + 0x22c]
call fcn.0040c6bd
jmp 0x40426c
push 0x208
mov edx, esi
lea ecx, [esp + 0x24]
call fcn.0040295c
lea edx, [esp + 0x228]
lea ecx, [esp + 0x20]
call fcn.00405d10
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404260
sub ecx, edx
inc esi
add esi, ecx
cmp byte [esi], bl
jne 0x40423b
mov eax, dword [esp + 0x14]
mov esi, eax
cmp byte [edi], bl
jne 0x4041ab
jmp 0x4042a7
mov edi, 0x47c
jmp 0x40428c
mov edi, 0x47d
push dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
call esi
push dword [esp + 0x10]
call esi
jmp 0x4045a8
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
push eax
call esi
push dword [esp + 0x10]
call esi
cmp dword [0x4108d0], ebx
je 0x4044e0
mov edi, 0x410c60
lea eax, [esp + 0x20]
push edi
push 0x208
push eax
push 0x401060
mov edx, 0x401260
mov ecx, 0x401064
call fcn.00402ad1
test eax, eax
js 0x4045b8
mov edx, dword [0x4108d0]
lea eax, [esp + 0x228]
push ebx
push ecx
push eax
lea edx, [edx + 4]
lea ecx, [esp + 0x2c]
call fcn.00403196
test eax, eax
je 0x4045b8
mov edx, dword [0x4108d0]
lea ecx, [esp + 0x228]
lea edx, [edx + 0x38]
call fcn.004036e6
push edi
push 0x208
lea eax, [esp + 0x28]
mov edx, 0x401270
push eax
push 0x401060
mov ecx, 0x401064
call fcn.00402ad1
test eax, eax
js 0x4045b8
mov edx, dword [0x4108d0]
lea eax, [esp + 0x228]
push ebx
push ecx
push eax
lea edx, [edx + 0x40]
lea ecx, [esp + 0x2c]
call fcn.00403196
test eax, eax
je 0x4045b8
mov edx, dword [0x4108d0]
lea ecx, [esp + 0x228]
lea edx, [edx + 0x74]
call fcn.004036e6
push edi
push 0x208
lea eax, [esp + 0x28]
mov edx, 0x40124c
push eax
push 0x401060
mov ecx, 0x401064
call fcn.00402ad1
test eax, eax
js 0x4045b8
mov edx, dword [0x4108d0]
cmp byte [esp + 0x20], bl
je 0x4044cd
mov eax, dword [edx + 0x7c]
test eax, eax
je 0x4044cd
push 0x3c
pop ecx
mul ecx
cmp edx, ebx
ja 0x4045a3
cmp eax, 0xffffffff
ja 0x4045a3
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x4045a3
cmp byte [esp + 0x20], 0x40
jne 0x40458b
push 0x410c60
push 0x104
lea eax, [esp + 0x230]
mov dword [esp + 0x1c], ebx
push eax
push 0x401060
xor edx, edx
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x31]
call fcn.00402ad1
cmp byte [esp + 0x228], bl
je 0x4044a0
lea esi, [esp + 0x228]
push 0x410c60
push 0x104
lea eax, [esp + 0x338]
mov edx, esi
push eax
push 0x401060
lea ecx, [esp + 0x31]
call fcn.00402ad1
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x330]
call fcn.0040377e
test eax, eax
je 0x40457d
add dword [esp + 0x10], 0x3c
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x404479
mov eax, dword [esp + 0x14]
sub esi, ecx
inc eax
add eax, esi
lea esi, [esp + 0x228]
add esi, eax
mov dword [esp + 0x14], eax
cmp byte [esi], bl
jne 0x404437
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [0x4108d0]
imul eax, dword [ecx + 0x7c], 0x3c
push eax
push edi
push eax
mov eax, dword [ecx + 0x80]
add eax, 0x84
add eax, ecx
push eax
call dword [sym.imp.msvcrt.dll_memcpy_s]
add esp, 0x10
push edi
call esi
mov edx, dword [0x4108d0]
imul ecx, dword [edx + 0x7c], 0x3c
mov eax, dword [edx + 0x80]
add eax, 0x88
add eax, ecx
mov dword [edx], eax
push ebx
mov edx, 0x40f32c
xor ecx, ecx
call fcn.0040616d
mov esi, 0x104
mov edx, 0x40fe48
push esi
mov ecx, 0x41014c
call fcn.0040b922
push 0x200
mov edx, 0x40fc48
mov ecx, 0x40ff4c
call fcn.0040b922
mov edi, 0x410598
mov edx, 0x410494
push esi
mov ecx, edi
call fcn.0040b922
push esi
mov esi, 0x4107a0
mov edx, 0x41069c
mov ecx, esi
call fcn.0040b922
cmp dword [0x4108b4], 0x864
jne 0x404578
mov ecx, 0x41014c
call fcn.0040ba0a
test eax, eax
je 0x4045b8
mov ecx, 0x40ff4c
call fcn.0040ba0a
test eax, eax
je 0x4045b8
mov ecx, edi
call fcn.0040ba0a
test eax, eax
je 0x4045b8
mov ecx, esi
call fcn.0040ba0a
test eax, eax
je 0x4045b8
xor ebx, ebx
inc ebx
jmp 0x4045b8
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, 0x481
jmp 0x4045a8
mov edx, edi
lea ecx, [esp + 0x20]
call fcn.0040377e
test eax, eax
jne 0x4044a0
push edi
call esi
jmp 0x404584
mov edi, 0x44c
mov ecx, dword [esp + 0x1c]
mov edx, edi
push ebx
push 0x10
push ebx
push ebx
call fcn.00402462
mov ecx, dword [esp + 0x43c]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040cb2e
mov esp, ebp
pop ebp
ret