Function at 0x41ca15
Capabilities:
Query environment variable
Read .ini file

Disassembly:
mov eax, dword [0x4320b8]
sub eax, 0x100
cmp edi, eax
ja 0x4186d8
lodsb al, byte [esi]
cmp al, 1
je 0x41cd96
jb 0x41cdd3
cmp al, 3
jb 0x41cad4
je 0x41cc1c
cmp al, 4
je 0x41cd32
cmp al, 0xf
je 0x41ca6d
cmp al, 0x13
je 0x41ca62
cmp al, 0x10
jne 0x418770
lodsb al, byte [esi]
jmp 0x42325c
lodsb al, byte [esi]
mov byte [0x432192], al
jmp 0x41cdb6
lodsd eax, dword [esi]
mov dword [0x432048], eax
and byte [0x432197], 0
cmp dword [0x432020], 0
je fcn.0041cac6
cmp byte [0x432190], 0
jne fcn.0041cac6
mov ebx, dword [0x4320b8]
mov dword [ebx - 4], 1
mov dword [ebx - 8], 0x14
sub ebx, 0x1c
cmp ebx, edi
jbe 0x4186d8
mov dword [0x4320b8], ebx
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov eax, dword [0x432098]
mov dword [ebx + 8], eax
mov al, byte [0x432192]
mov byte [ebx + 0x10], al
lodsd eax, dword [esi]
cmp eax, 0xf
jb 0x418896
je 0x4188ab
mov ebx, eax
lodsb al, byte [esi]
mov byte [0x432182], al
call fcn.0041caf3
jmp fcn.0041cac6
lodsd eax, dword [esi]
inc esi
cmp eax, 0xf
jb 0x418896
je 0x4188ab
push eax
or byte [0x43216d], 1
call fcn.0041f2db
pop ebx
xor cl, cl
mov ch, byte [0x432188]
cmp ch, 3
je 0x418896
and byte [ebx + 9], 0xfe
cmp eax, dword [ebx]
mov dword [ebx], eax
setne ah
cmp edx, dword [ebx + 4]
mov dword [ebx + 4], edx
setne al
or ah, al
mov al, byte [0x432189]
xor al, byte [ebx + 9]
and al, 2
or ah, al
xor byte [ebx + 9], al
cmp cl, byte [ebx + 0xa]
mov byte [ebx + 0xa], cl
setne al
or ah, al
cmp ch, byte [ebx + 0xb]
mov byte [ebx + 0xb], ch
setne al
or ah, al
xor edx, edx
cmp edx, dword [ebx + 0xc]
mov dword [ebx + 0xc], edx
setne al
or ah, al
or ch, ch
je 0x41cca9
mov edx, dword [0x4320f8]
cmp edx, dword [ebx + 0x14]
mov dword [ebx + 0x14], edx
setne al
or ah, al
mov cx, word [0x432026]
xchg word [ebx + 0x10], cx
mov edx, dword [0x432048]
mov dword [ebx + 0x1c], edx
test byte [ebx + 8], 1
je 0x41cd29
cmp cx, word [ebx + 0x10]
jne 0x41cce0
test byte [ebx + 8], 2
je 0x4188b2
or byte [ebx + 8], 4
and byte [ebx + 9], 0xfb
jmp 0x41cdb6
btr dword [ebx + 8], 0xa
jb 0x41cd1d
inc cx
sub cx, word [ebx + 0x10]
setne al
or ah, al
je 0x41cdb6
test byte [ebx + 8], 4
jne 0x41cdb6
test byte [ebx + 8], 8
je 0x41cdb6
mov cx, word [0x432026]
cmp cx, word [ebx + 0x12]
jne 0x41cdb6
or byte [0x432190], 0xff
jmp 0x41cdb6
or byte [ebx + 8], 3
jmp 0x41cdb6
lodsd eax, dword [esi]
cmp eax, 0xf
jb 0x418896
je 0x4188ab
mov cx, word [0x432026]
test byte [eax + 8], 1
je 0x41cd66
cmp cx, word [eax + 0x10]
je 0x4188b2
test byte [eax + 9], 4
jne 0x41cd66
or byte [0x432190], 0xff
mov dx, word [eax + 8]
and dx, 0xfefd
or dx, 0x405
mov word [eax + 8], dx
mov word [eax + 0x10], cx
mov edx, dword [0x432048]
mov dword [eax + 0x1c], edx
mov ebx, dword [0x432098]
mov dword [eax], ebx
or byte [ebx + 0xa], 2
jmp fcn.0041cac6
and dword [0x43216c], 0
and dword [0x432170], 0
call 0x41cda9
movzx ebx, word [esi]
mov al, byte [esi + 2]
add esi, 3
add dword [esp], ebx
ret
test byte [0x432197], 0xfe
jne 0x418770
mov al, byte [esi]
cmp al, 0xf
je 0x41cdd1
or al, al
jne 0x4188ce
dec esi
stc
ret
mov ah, al
shr ah, 4
cmp ah, 3
jne 0x418770
and al, 0xf
mov byte [0x43217b], al
call fcn.00428d51
or byte [0x432197], 1
jmp fcn.0041cac6