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

Disassembly:
push 0x42ffdd
jmp fcn.00416c5c
mov eax, esp
sub eax, dword [0x431010]
cmp eax, 0x100
jb 0x416a41
push ecx
push esi
mov esi, dword [0x431048]
add esi, 0x10
cmp word [esi], 0x3b
jne 0x4177a7
add esi, 2
test byte [0x431195], 0xf0
jne 0x4177f1
cmp byte [esi], 0x1a
jne 0x4177ea
movzx edx, byte [esi + 1]
lea edx, [esi + edx + 2]
cmp word [edx], 0x31a
jne 0x4177ea
mov ebx, 0x43119b
movzx eax, byte [edx + 2]
xlatb
ror eax, 8
mov al, byte [edx + 3]
xlatb
ror eax, 8
mov al, byte [edx + 4]
xlatb
ror eax, 0x10
cmp eax, 0x786966
je 0x417bc7
call fcn.00417f6d
jmp 0x4177f6
call fcn.004180eb
mov esi, dword [0x431048]
add esi, 0x10
mov al, byte [0x431195]
test al, 2
jne 0x417da4
test al, 1
jne 0x417d89
mov dword [0x4310c4], esi
lodsb al, byte [esi]
movzx ecx, byte [esi]
inc esi
cmp al, 0x1a
jne 0x4179eb
cmp cl, 3
jb 0x417840
push edi
mov edi, 0x42a661
call fcn.00417730
pop edi
jb 0x417840
mov byte [edx - 2], 0x3b
jmp eax
xor ch, ch
call fcn.004179f9
jb 0x41785c
mov byte [ebx - 2], 0x3b
mov dword [0x431060], 0
jmp 0x4182ba
mov dword [0x431060], esi
add esi, ecx
lodsb al, byte [esi]
cmp al, 0x3a
je 0x417955
cmp al, 0x1a
jne 0x4179eb
lodsb al, byte [esi]
cmp al, 3
jne 0x4178a1
mov ebx, 0x43119b
movzx eax, byte [esi]
xlatb
ror eax, 8
mov al, byte [esi + 1]
xlatb
ror eax, 8
mov al, byte [esi + 2]
xlatb
ror eax, 0x10
cmp eax, 0x757165
je 0x417bd2
mov al, 3
mov ch, 1
mov cl, al
call fcn.004179f9
jb 0x4179eb
push edx
push esi
mov esi, dword [0x431060]
mov dword [0x431064], esi
sub dword [0x431064], 2
mov cl, byte [esi - 1]
mov ch, 2
call fcn.004179f9
jb 0x41792a
test edx, edx
je 0x416c0a
mov ecx, dword [edx + 0xc]
add ecx, 3
lea ebx, [edi + ecx]
mov ecx, edi
sub ecx, dword [0x431064]
lea esi, [edi - 1]
lea edi, [ebx - 1]
std
rep movsb byte es:[edi], byte [esi]
cld
mov edi, dword [0x431064]
mov esi, dword [edx + 8]
mov ecx, dword [edx + 0xc]
add dword [0x431060], ecx
add dword [0x431060], 3
call fcn.00417ff5
mov al, 0x3a
stosb byte es:[edi], al
mov ax, 0x3b
stosw word es:[edi], ax
mov edi, ebx
pop esi
add esi, dword [edx + 0xc]
add esi, 3
pop edx
jmp 0x4182ba
mov edx, dword [0x431060]
movzx eax, byte [edx - 1]
add edx, eax
push edi
lea esi, [edi - 1]
mov ecx, edi
sub ecx, edx
std
rep movsb byte es:[edi], byte [esi]
cld
pop edi
inc edi
mov al, 0x3a
mov byte [edx], al
inc al
mov byte [edx + 1], al
pop esi
pop edx
inc esi
jmp 0x4182ba
dec esi
sub esi, ecx
lea ebp, [esi - 2]
mov ch, 2
call fcn.004179f9
jae 0x417977
lea esi, [esi + ecx + 1]
cmp byte [esi], 0x3a
jne 0x417814
inc esi
jmp 0x417814
test edx, edx
je 0x416c0a
mov ebx, dword [edx + 8]
mov ecx, dword [edx + 0xc]
add ecx, ebx
cmp ebx, ecx
je 0x4179aa
cmp byte [ebx], 0x1a
jne 0x4179aa
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
cmp ebx, ecx
je 0x4179b1
cmp byte [ebx], 0x3a
jne 0x4179aa
inc ebx
cmp byte [ebx], 0x3a
jne 0x417987
inc ebx
jmp 0x417987
call fcn.00417fbe
jmp 0x4179f6
mov ecx, edi
sub ecx, esi
mov edi, dword [edx + 0xc]
add edi, ebp
push edi
lea eax, [edi + ecx]
push eax
cmp esi, edi
je 0x4179d5
jb 0x4179c9
rep movsb byte es:[edi], byte [esi]
jmp 0x4179d5
lea esi, [esi + ecx - 1]
lea edi, [edi + ecx - 1]
std
rep movsb byte es:[edi], byte [esi]
cld
mov ecx, dword [edx + 0xc]
mov edi, dword [esp + 4]
sub edi, ecx
mov esi, dword [edx + 8]
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
inc esi
jmp 0x417814
mov esi, dword [0x4310c4]
call fcn.00417f76
add edx, 5
add esi, 2
push edx
mov ch, 3
jmp 0x417be3
add esi, 3
push esi
call fcn.00417f76
mov esi, dword [0x431060]
mov ch, 2
mov byte [esi - 2], 0x3b
mov cl, byte [esi - 1]
call fcn.00417ace
pop ebx
mov ecx, edi
dec ecx
sub ecx, ebx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ecx
jmp 0x4179f6
add esi, 2
lodsb al, byte [esi]
or al, al
je 0x4179f6
cmp al, 0x7b
jne 0x416abb
or byte [0x431195], 2
lodsb al, byte [esi]
cmp al, 0x1a
je 0x417e0d
cmp al, 0x3b
je 0x417e0d
cmp al, 0x22
je 0x417e15
or al, al
je 0x4179f6
cmp al, 0x7d
jne 0x417da4
mov al, byte [0x431195]
and byte [0x431195], 0xf0
test al, 8
jne 0x41842f
cmp byte [esi], 0
je 0x4179f6
mov ecx, edi
sub ecx, esi
mov edx, esi
lea esi, [esi + ecx - 1]
lea edi, [edi + 0x11]
mov ebx, edi
dec edi
std
rep movsb byte es:[edi], byte [esi]
cld
mov edi, edx
xor al, al
stosb byte es:[edi], al
mov esi, dword [0x431048]
mov dword [0x431048], edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
jmp 0x4177f6
movzx eax, byte [esi]
inc esi
add esi, eax
jmp 0x417da4
lodsd eax, dword [esi]
add esi, eax
jmp 0x417da4
push edi
push dword [0x431048]
push esi
mov eax, dword [0x4310b0]
mov dword [0x431048], eax
mov dword [0x43104c], eax
mov esi, dword [0x431068]
cmp byte [0x431177], 0x10
jae 0x41876d
cmp byte [0x431177], 0
jne 0x41859b
call fcn.0041854e
cmp eax, 0
jl 0x416b51
push dword [0x43102c]
push dword [0x43105c]
mov dword [0x43105c], 0
push dword [0x4310a8]
mov dword [0x431060], 0
mov dword [0x4310a8], eax
lodsb al, byte [esi]
or al, al
je 0x4184f3
cmp al, 0x7b
je 0x4184f3
cmp al, 0x1a
jne 0x416aa7
lodsb al, byte [esi]
movzx ecx, al
xor eax, eax
call fcn.00418eab
add esi, ecx
xor eax, eax
mov dword [edx + 0xc], eax
inc eax
mov dword [edx + 8], eax
lodsb al, byte [esi]
cmp al, 0x3a
jne 0x4184e4
push edx
call fcn.0041854e
mov edx, eax
add edx, dword [0x4310a8]
jo 0x416b51
pop edx
mov dword [edx + 8], eax
lodsb al, byte [esi]
cmp al, 0x2c
jne 0x4184f3
lodsb al, byte [esi]
cmp al, 0x1a
jne 0x416aa7
jmp 0x4184b0
dec esi
cmp dword [0x4310a8], 0
je 0x418504
xor eax, eax
call fcn.00418900
pop dword [0x4310a8]
pop dword [0x43105c]
pop dword [0x43102c]
pop ebx
pop esi
pop edx
cmp byte [ebx], 0
je 0x4179f6
mov dword [0x431048], edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
test byte [0x431195], 0xf
je 0x41853e
mov ax, 0x3b
stosw word es:[edi], ax
mov esi, ebx
sub edx, ebx
mov ecx, edx
call fcn.00417ff5
jmp 0x4177f6
cmp byte [esi], 0x1a
jne 0x416aa7
movzx eax, byte [esi + 1]
lea esi, [esi + eax + 2]
lodsb al, byte [esi]
cmp byte [0x431177], 1
ja 0x4185e7
cmp al, 0x3a
je 0x4185cd
cmp al, 0x3d
je 0x4185cd
cmp al, 0x2a
jne 0x4185c3
lodsb al, byte [esi]
cmp al, 0x2c
jne 0x416aa7
jmp 0x41860a
xor ebp, ebp
or byte [0x431196], 0xff
call fcn.00417ceb
cmp byte [esi], 0x2c
jne 0x416aa7
inc esi
jmp 0x41860a
cmp al, 0x2c
jne 0x416aa7
cmp byte [0x431177], 3
je 0x41860a
mov al, byte [esi]
or al, al
je 0x418516
cmp al, 0x7b
je 0x418516
xor eax, eax
push dword [0x43102c]
push dword [0x43105c]
mov dword [0x43105c], eax
push dword [0x4310a8]
mov dword [0x4310a8], eax
mov dword [0x431060], eax
cmp byte [0x431177], 3
je 0x4186c9
mov ebx, esi
cmp byte [0x431177], 2
je 0x418675
mov edx, dword [0x43106c]
mov al, byte [edx]
push eax
mov byte [edx], 0
inc dword [0x4310a8]
mov esi, dword [0x431068]
inc esi
call fcn.00418352
cmp byte [ebx], 0x2c
jne 0x41866b
inc ebx
jmp 0x418651
mov esi, ebx
pop eax
mov byte [esi], al
jmp 0x4184fd
mov esi, dword [0x431068]
inc esi
lodsb al, byte [esi]
movzx ecx, al
inc dword [0x4310a8]
mov eax, dword [0x4310a8]
call fcn.00418eab
mov dword [edx + 0xc], ebx
cmp byte [ebx], 0x1a
je 0x4186ac
cmp byte [ebx], 0x22
je 0x4186a4
mov eax, 1
jmp 0x4186b3
mov eax, dword [ebx + 1]
add eax, 5
jmp 0x4186b3
movzx eax, byte [ebx + 1]
add eax, 2
mov dword [edx + 8], eax
add ebx, eax
cmp byte [ebx], 0
je 0x4186c2
cmp byte [ebx], 0x7b
jne 0x418675
mov esi, ebx
jmp 0x4184fd
lodsb al, byte [esi]
cmp al, 0x1a
jne 0x416aa7
lodsb al, byte [esi]
mov ebp, esi
mov cl, al
mov ch, 2
call fcn.004179f9
jb 0x418504
test edx, edx
je 0x416bf5
push edx
inc dword [0x4310a8]
mov dword [edx + 4], ebp
mov edx, dword [edx]
or edx, edx
je 0x418712
mov eax, dword [edx + 4]
cmp eax, 1
jbe 0x4186f6
mov esi, ebp
movzx ecx, byte [esi - 1]
xchg edi, eax
repe cmpsb byte [esi], byte es:[edi]
xchg edi, eax
je 0x4186ed
jmp 0x4186f6
pop edx
push dword [0x4310a8]
push edx
mov esi, dword [0x431068]
inc esi
lodsb al, byte [esi]
movzx ecx, al
mov eax, dword [esp + 4]
call fcn.00418eab
mov ebx, edx
pop edx
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
mov dword [ebx + 0xc], eax
mov dword [ebx + 8], ecx
mov edx, dword [edx]
or edx, edx
je 0x41874d
cmp ebp, dword [edx + 4]
jne 0x41873d
dec dword [esp]
jne 0x418719
pop eax
mov esi, ebp
movzx ecx, byte [esi - 1]
add esi, ecx
cmp byte [esi], 0
je 0x4184fd
cmp byte [esi], 0x7b
jne 0x416aa7
jmp 0x4184fd
mov ebx, esi
call fcn.00417ef9
call fcn.00418840
mov edx, edi
mov al, byte [ebx]
cmp al, 0x1a
je 0x41879a
cmp al, 0x2c
jne 0x418516
cmp esi, dword [0x43106c]
je 0x4188ac
jmp 0x418516
add edx, 0xc
cmp edx, dword [0x431004]
ja 0x416a37
mov dword [edx - 0xc], ebx
mov dword [edx - 8], esi
call fcn.00418816
jb 0x4187ec
mov dword [edx - 4], esi
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
cmp byte [ebx], 0x1a
je 0x41879a
call fcn.00418840
cmp esi, dword [0x43106c]
je 0x4188a3
cmp byte [ebx], 0x1a
je 0x41879a
mov ebx, dword [edx - 0xc]
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
mov esi, dword [edx - 4]
jmp 0x41880a
sub edx, 0xc
cmp edx, edi
je 0x418516
mov ebx, dword [edx - 0xc]
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
cmp byte [ebx], 0x1a
je 0x4187ec
mov esi, dword [edx - 4]
call fcn.00418816
jb 0x4187ec
mov dword [edx - 4], esi
jmp 0x4187c6
cmp byte [ebx], 0x2c
jne 0x418516
xor eax, eax
push dword [0x43102c]
push dword [0x43105c]
mov dword [0x43105c], eax
push dword [0x4310a8]
mov dword [0x4310a8], eax
mov dword [0x431060], eax
push esi
push edi
push edx
cmp edi, dword [esp]
je 0x4188f8
mov esi, dword [edi]
inc esi
lodsb al, byte [esi]
movzx ecx, al
xor eax, eax
call fcn.00418eab
mov eax, dword [edi + 4]
mov dword [edx + 0xc], eax
mov ecx, dword [edi + 8]
sub ecx, eax
mov dword [edx + 8], ecx
add edi, 0xc
jmp 0x4188d2
pop edx
pop edi
pop esi
jmp 0x4184fd