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

Disassembly:
mov eax, dword [0x4310b8]
sub eax, 0x100
cmp edi, eax
ja 0x416a37
lodsb al, byte [esi]
cmp al, 1
je 0x41b0f5
jb 0x41b132
cmp al, 3
jb 0x41ae33
je 0x41af7b
cmp al, 4
je 0x41b091
cmp al, 0xf
je 0x41adcc
cmp al, 0x13
je 0x41adc1
cmp al, 0x10
jne 0x416acf
lodsb al, byte [esi]
jmp 0x4215bb
lodsb al, byte [esi]
mov byte [0x431192], al
jmp 0x41b115
lodsd eax, dword [esi]
mov dword [0x431048], eax
and byte [0x431197], 0
cmp dword [0x431020], 0
je fcn.0041ae25
cmp byte [0x431190], 0
jne fcn.0041ae25
mov ebx, dword [0x4310b8]
mov dword [ebx - 4], 1
mov dword [ebx - 8], 0x14
sub ebx, 0x1c
cmp ebx, edi
jbe 0x416a37
mov dword [0x4310b8], ebx
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov eax, dword [0x431098]
mov dword [ebx + 8], eax
mov al, byte [0x431192]
mov byte [ebx + 0x10], al
lodsd eax, dword [esi]
cmp eax, 0xf
jb 0x416bf5
je 0x416c0a
mov ebx, eax
lodsb al, byte [esi]
mov byte [0x431182], al
call fcn.0041ae52
jmp fcn.0041ae25
lodsd eax, dword [esi]
inc esi
cmp eax, 0xf
jb 0x416bf5
je 0x416c0a
push eax
or byte [0x43116d], 1
call fcn.0041d63a
pop ebx
xor cl, cl
mov ch, byte [0x431188]
cmp ch, 3
je 0x416bf5
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 [0x431189]
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 0x41b008
mov edx, dword [0x4310f8]
cmp edx, dword [ebx + 0x14]
mov dword [ebx + 0x14], edx
setne al
or ah, al
mov cx, word [0x431026]
xchg word [ebx + 0x10], cx
mov edx, dword [0x431048]
mov dword [ebx + 0x1c], edx
test byte [ebx + 8], 1
je 0x41b088
cmp cx, word [ebx + 0x10]
jne 0x41b03f
test byte [ebx + 8], 2
je 0x416c11
or byte [ebx + 8], 4
and byte [ebx + 9], 0xfb
jmp 0x41b115
btr dword [ebx + 8], 0xa
jb 0x41b07c
inc cx
sub cx, word [ebx + 0x10]
setne al
or ah, al
je 0x41b115
test byte [ebx + 8], 4
jne 0x41b115
test byte [ebx + 8], 8
je 0x41b115
mov cx, word [0x431026]
cmp cx, word [ebx + 0x12]
jne 0x41b115
or byte [0x431190], 0xff
jmp 0x41b115
or byte [ebx + 8], 3
jmp 0x41b115
lodsd eax, dword [esi]
cmp eax, 0xf
jb 0x416bf5
je 0x416c0a
mov cx, word [0x431026]
test byte [eax + 8], 1
je 0x41b0c5
cmp cx, word [eax + 0x10]
je 0x416c11
test byte [eax + 9], 4
jne 0x41b0c5
or byte [0x431190], 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 [0x431048]
mov dword [eax + 0x1c], edx
mov ebx, dword [0x431098]
mov dword [eax], ebx
or byte [ebx + 0xa], 2
jmp fcn.0041ae25
and dword [0x43116c], 0
and dword [0x431170], 0
call 0x41b108
movzx ebx, word [esi]
mov al, byte [esi + 2]
add esi, 3
add dword [esp], ebx
ret
test byte [0x431197], 0xfe
jne 0x416acf
mov al, byte [esi]
cmp al, 0xf
je 0x41b130
or al, al
jne 0x416c2d
dec esi
stc
ret
mov ah, al
shr ah, 4
cmp ah, 3
jne 0x416acf
and al, 0xf
mov byte [0x43117b], al
call fcn.004270b0
or byte [0x431197], 1
jmp fcn.0041ae25