Function at 0x41c1c0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x455c20]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor bl, bl
mov esi, 0x43f630
cmp edi, 7
ja case.default.0x41c1e5
jmp dword [edi*4 + 0x41c72c]
mov esi, dword [0x4563dc]
jmp case.default.0x41c1e5
mov esi, dword [0x4563e0]
jmp case.default.0x41c1e5
mov esi, dword [0x4563e4]
mov byte [0x455d30], 0
mov dword [ebp - 0x10c], esi
cmp byte [esi], 0
je 0x41c711
jmp 0x41c220
mov ecx, 0x455d30
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41c228
sub ecx, edx
cmp ecx, 0x100
jae 0x41c711
push 0x101
lea eax, [ebp - 0x108]
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
test bl, bl
je 0x41c6c9
mov cl, byte [esi]
movsx eax, cl
add eax, 0xffffffdd
cmp eax, 0x5b
ja case.0x41c273.36
movzx eax, byte [eax + 0x41c784]
jmp dword [eax*4 + 0x41c74c]
mov eax, dword [0x456300]
test eax, eax
je case.0x41c273.63
push 0x101
push eax
call sub.LIBPQ.dll_Ordinal_7
add esp, 4
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00429160
add esp, 0xc
jmp case.0x41c273.63
mov eax, dword [0x456300]
test eax, eax
je case.0x41c273.63
push eax
call sub.LIBPQ.dll_Ordinal_8
push dword [0x456300]
mov esi, eax
call sub.LIBPQ.dll_Ordinal_7
add esp, 8
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x41c2f0
test cl, cl
je 0x41c2ec
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x41c2f0
add eax, 2
add esi, 2
test cl, cl
jne 0x41c2d0
xor eax, eax
jmp 0x41c2f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x41c359
push str.PGDATABASE
call dword [sym.imp.MSVCR120.dll_getenv]
mov esi, eax
add esp, 4
test esi, esi
je 0x41c349
push dword [0x456300]
call sub.LIBPQ.dll_Ordinal_7
add esp, 4
jmp 0x41c320
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x41c340
test cl, cl
je 0x41c33c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x41c340
add esi, 2
add eax, 2
test cl, cl
jne 0x41c320
xor eax, eax
jmp 0x41c345
sbb eax, eax
or eax, 1
test eax, eax
je 0x41c359
push 0x101
push dword [0x456300]
jmp 0x41c28d
push 0x101
lea eax, [ebp - 0x108]
push 0x43f634
push eax
call fcn.00429160
add esp, 0xc
jmp case.0x41c273.63
mov eax, dword [0x456300]
test eax, eax
je case.0x41c273.63
push eax
call sub.LIBPQ.dll_Ordinal_10
mov esi, eax
add esp, 4
test esi, esi
je case.0x41c273.63
mov al, byte [esi]
test al, al
je case.0x41c273.63
cmp al, 0x2f
je case.0x41c273.63
cmp al, 0x5c
je case.0x41c273.63
movzx eax, al
push eax
call dword [sym.imp.MSVCR120.dll_isalpha]
add esp, 4
test eax, eax
je 0x41c3db
cmp byte [esi + 1], 0x3a
jne 0x41c3db
mov al, byte [esi + 2]
cmp al, 0x2f
je case.0x41c273.63
cmp al, 0x5c
je case.0x41c273.63
push 0x101
lea eax, [ebp - 0x108]
push esi
push eax
call fcn.00429160
mov eax, dword [ebp - 0x10c]
add esp, 0xc
cmp byte [eax], 0x6d
jne case.0x41c273.63
lea eax, [ebp - 0x108]
push 0x43eee8
push eax
call dword [sym.imp.MSVCR120.dll_strcspn]
add esp, 8
cmp eax, 0x101
jae 0x41c727
mov byte [ebp + eax - 0x108], 0
jmp case.0x41c273.63
mov eax, dword [0x456300]
test eax, eax
je case.0x41c273.63
push eax
call sub.LIBPQ.dll_Ordinal_11
add esp, 4
test eax, eax
je case.0x41c273.63
push 0x101
push dword [0x456300]
call sub.LIBPQ.dll_Ordinal_11
jmp 0x41c292
cmp dword [0x456300], 0
je case.0x41c273.63
push 0x101
call fcn.00409ac0
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00429160
add esp, 0xc
jmp case.0x41c273.63
push 8
lea eax, [ebp - 0x10c]
push eax
push esi
call dword [sym.imp.MSVCR120.dll_strtol]
add esp, 0xc
mov byte [ebp - 0x108], al
dec dword [ebp - 0x10c]
jmp case.0x41c273.63
cmp edi, 6
ja case.default.0x41c4b8
jmp dword [edi*4 + 0x41c7e0]
cmp dword [0x456300], 0
jne 0x41c4d4
mov byte [ebp - 0x108], 0x21
jmp case.0x41c273.63
cmp byte [0x4563bf], 0
mov eax, 0x5e
mov ecx, 0x3d
cmove eax, ecx
mov byte [ebp - 0x108], al
jmp case.0x41c273.63
mov byte [ebp - 0x108], 0x2d
jmp case.0x41c273.63
mov byte [ebp - 0x108], 0x27
jmp case.0x41c273.63
mov byte [ebp - 0x108], 0x22
jmp case.0x41c273.63
mov byte [ebp - 0x108], 0x24
jmp case.0x41c273.63
mov byte [ebp - 0x108], 0x2a
jmp case.0x41c273.63
mov byte [ebp - 0x108], 0x28
jmp case.0x41c273.63
mov eax, dword [0x456300]
test eax, eax
jne 0x41c550
mov byte [ebp - 0x108], 0x3f
jmp case.0x41c273.63
push eax
call sub.LIBPQ.dll_Ordinal_96
add esp, 4
cmp eax, 3
ja case.default.0x41c55e
jmp dword [eax*4 + 0x41c7fc]
mov byte [ebp - 0x108], 0
jmp case.0x41c273.63
push dword [0x4563ac]
lea eax, [ebp - 0x108]
push dword [0x4563a8]
push str._llu
push 0x101
push eax
call fcn.004262e0
add esp, 0x14
jmp case.0x41c273.63
call fcn.00409a20
neg al
sbb al, al
and al, 0xe5
add al, 0x3e
mov byte [ebp - 0x108], al
jmp case.0x41c273.63
lea eax, [esi + 1]
push eax
call fcn.00424d80
mov edi, eax
push 0x43f640
push edi
call dword [sym.imp.MSVCR120.dll_strcspn]
mov ebx, eax
push 0x42db28
push edi
mov byte [ebx + edi], 0
call fcn.004290d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x41c60b
push esi
lea eax, [ebp - 0x108]
push 0x101
push eax
call dword [sym.imp.MSVCR120.dll_fgets]
neg eax
push esi
sbb al, al
and byte [ebp - 0x108], al
call dword [sym.imp.MSVCR120.dll__pclose]
add esp, 0x10
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41c614
sub ecx, edx
je 0x41c63d
cmp byte [ebp + ecx - 0x109], 0xa
jne 0x41c63d
dec ecx
cmp ecx, 0x101
jae 0x41c727
mov byte [ebp + ecx - 0x108], al
push edi
call dword [sym.imp.MSVCR120.dll_free]
mov eax, dword [ebp - 0x10c]
add esp, 4
mov edi, dword [ebp + 8]
inc eax
add eax, ebx
mov dword [ebp - 0x10c], eax
jmp case.0x41c273.63
lea eax, [esi + 1]
push eax
call fcn.00424d80
mov esi, eax
push 0x43eeec
push esi
call dword [sym.imp.MSVCR120.dll_strcspn]
mov edi, eax
push esi
mov byte [edi + esi], 0
push dword [0x4563b8]
call fcn.00424870
add esp, 0x14
test eax, eax
je 0x41c6a3
push 0x101
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00429160
add esp, 0xc
push esi
call dword [sym.imp.MSVCR120.dll_free]
mov eax, dword [ebp - 0x10c]
add esp, 4
inc eax
add eax, edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x10c], eax
jmp case.0x41c273.63
mov byte [ebp - 0x108], cl
jmp 0x41c6d9
mov al, byte [esi]
cmp al, 0x25
jne 0x41c6d3
mov bl, 1
jmp 0x41c701
mov byte [ebp - 0x108], al
mov byte [ebp - 0x107], 0
push 0x101
lea eax, [ebp - 0x108]
xor bl, bl
push eax
push 0x455d30
call fcn.004291a0
mov esi, dword [ebp - 0x10c]
add esp, 0xc
inc esi
mov dword [ebp - 0x10c], esi
cmp byte [esi], 0
jne 0x41c220
mov ecx, dword [ebp - 4]
mov eax, 0x455d30
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00429e54
mov esp, ebp
pop ebp
ret
call fcn.00429c62
in al, dx
aad 0
add ah, ch
rol dword [ecx], 0xf4
rol dword [ecx], 0xf4
rol dword [ecx], 0xf4
add ah, dh
rol dword [ecx], 0xf4
rol dword [ecx], 0xf4
rol dword [ecx], 0xf4
rol dword [ecx], 0xfc
rol dword [ecx], 0x9b
lds eax, [ecx]
jp 0x41c714
inc ecx
add byte [ebx + 0x5e0041c4], cl
mov byte [ecx], 0x2c
les eax, [ecx]
loopne 0x41c728
inc ecx
add byte [edi - 0x3d], dh
inc ecx
add byte [edi - 0x4cffbe3c], ch
lds eax, [ecx]
jno 0x41c737
inc ecx
add byte [edi - 0x3c], bl
inc ecx
add byte [ebx], bh
lds eax, [ecx]
stosb byte es:[edi], al
ret 65