Function at 0x419fe0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov eax, 0xffffffff
push edi
push esi
push ebx
sub esp, 0x3c
mov esi, dword [esp + 0x58]
mov ebx, dword [0x424054]
cmp byte [esi], 0x3a
sete dl
movzx ecx, dl
dec ecx
and ecx, ebx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x50]
test ecx, ecx
jle 0x41a173
mov ebp, dword [0x424050]
xor edi, edi
mov dword [0x425ae0], edi
test ebp, ebp
je 0x41ab80
mov ecx, dword [0x425ad0]
test ecx, ecx
jne 0x41a09e
lea esi, [esi]
lea edi, [edi]
mov dword [0x425400], ebp
mov ebx, dword [esp + 0x58]
mov dword [0x4253f0], ebp
xor ebp, ebp
mov dword [0x4253c0], ebp
mov dword [esp], 0x419da0
call sub.msvcrt.dll_getenv
mov dword [0x4253e0], eax
mov ecx, dword [esp + 0x58]
movzx edx, byte [ecx]
cmp dl, 0x2d
je 0x41ab71
cmp dl, 0x2b
je 0x41ab5f
test eax, eax
sete cl
movzx edi, cl
mov dword [0x4253d0], edi
mov dword [esp + 0x58], ebx
mov eax, 1
mov dword [0x425ad0], eax
mov eax, dword [0x4253c0]
test eax, eax
je 0x41a0b0
cmp byte [eax], 0
jne 0x41a1b0
mov ebp, dword [0x424050]
cmp dword [0x425400], ebp
jle 0x41a0c4
mov dword [0x425400], ebp
cmp dword [0x4253f0], ebp
jle 0x41a0d2
mov dword [0x4253f0], ebp
cmp dword [0x4253d0], 1
je 0x41aae8
cmp ebp, dword [esp + 0x50]
je 0x41aac2
cld
mov edi, dword [esp + 0x54]
mov ebx, 3
mov ecx, ebx
mov esi, dword [edi + ebp*4]
mov edi, 0x419db0
repe cmpsb byte [esi], byte es:[edi]
jne 0x41a142
mov eax, dword [0x425400]
inc ebp
cmp dword [0x4253f0], eax
mov dword [0x424050], ebp
je 0x41aadd
cmp eax, ebp
je 0x41a130
mov ebp, dword [esp + 0x54]
mov dword [esp], ebp
call fcn.0041abe0
lea esi, [esi]
mov ecx, dword [esp + 0x50]
mov ebp, ecx
mov dword [0x425400], ecx
mov dword [0x424050], ecx
cmp ebp, dword [esp + 0x50]
je 0x41aac2
mov esi, dword [esp + 0x54]
mov eax, dword [esi + ebp*4]
cmp byte [eax], 0x2d
je 0x41a187
mov edx, dword [0x4253d0]
test edx, edx
je 0x41a180
mov dword [0x425ae0], eax
inc ebp
mov eax, 1
mov dword [0x424050], ebp
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xffffffff
jmp 0x41a173
movzx edx, byte [eax + 1]
test dl, dl
je 0x41a158
mov ebx, dword [esp + 0x5c]
xor ecx, ecx
test ebx, ebx
je 0x41a1a2
cmp dl, 0x2d
je 0x41aab8
lea edi, [ecx + eax + 1]
mov dword [0x4253c0], edi
lea esi, [esi]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x41a525
mov esi, dword [0x424050]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + esi*4]
movzx eax, byte [edx + 1]
cmp al, 0x2d
je 0x41a1e7
mov ebp, dword [esp + 0x64]
test ebp, ebp
je 0x41a525
cmp byte [edx + 2], 0
je 0x41aa98
mov dword [esp + 0x34], 0
mov edx, dword [0x4253c0]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov edi, edx
mov dword [esp + 0x28], 0xffffffff
movzx eax, byte [edx]
test al, al
je 0x41a22c
cmp al, 0x3d
je 0x41a22c
lea esi, [esi]
inc edi
movzx eax, byte [edi]
test al, al
je 0x41a22c
cmp al, 0x3d
jne 0x41a220
mov esi, dword [esp + 0x5c]
xor ebp, ebp
mov ebx, dword [esi]
test ebx, ebx
mov ecx, ebx
je 0x41a450
mov esi, esi
mov dword [esp + 4], edx
mov ebx, edi
sub ebx, edx
mov dword [esp + 8], ebx
mov dword [esp], ecx
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x41aa20
add esi, 0x10
inc ebp
mov ebx, dword [esi]
test ebx, ebx
mov ecx, ebx
je 0x41a270
mov edx, dword [0x4253c0]
jmp 0x41a240
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x41a284
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x41a9c0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x41a450
mov edx, dword [0x424050]
lea ebp, [edx + 1]
mov dword [0x424050], ebp
cmp byte [edi], 0
je 0x41a3b0
mov ebx, dword [esp + 0x34]
mov esi, dword [ebx + 4]
test esi, esi
je 0x41a305
lea ecx, [edi + 1]
mov dword [0x425ae0], ecx
mov esi, dword [0x4253c0]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
mov ebp, dword [esp + 0x60]
test ebp, ebp
je 0x41a2e2
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x60]
mov dword [ebx], edx
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 8]
test edx, edx
jne 0x41a2f9
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
jmp 0x41a173
mov esi, dword [eax + 0xc]
xor eax, eax
mov dword [edx], esi
jmp 0x41a173
mov edx, dword [esp + 0x38]
test edx, edx
je 0x41a353
mov edx, dword [esp + 0x54]
mov edi, dword [edx + ebp*4 - 4]
cmp byte [edi + 1], 0x2d
je 0x41a37e
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov ebx, dword [eax]
add ecx, 0x40
mov dword [esp + 0x10], ebx
mov esi, dword [edi + ebp*4 - 4]
movsx ebp, byte [esi]
mov dword [esp + 0xc], ebp
mov edx, dword [edi]
mov dword [esp + 4], 0x419dc0
mov dword [esp], ecx
mov dword [esp + 8], edx
call sub.msvcrt.dll_fprintf
mov edx, dword [0x4253c0]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 0xc]
mov dword [0x424058], ecx
mov eax, 0x3f
jmp 0x41a173
mov eax, dword [esp + 0x34]
mov ebp, dword [sym.imp.msvcrt.dll__iob]
mov ebx, dword [eax]
add ebp, 0x40
mov dword [esp + 0xc], ebx
mov esi, dword [edx]
mov dword [esp + 4], 0x419e00
mov dword [esp], ebp
mov dword [esp + 8], esi
call sub.msvcrt.dll_fprintf
jmp 0x41a353
mov esi, dword [esp + 0x34]
cmp dword [esi + 4], 1
jne 0x41a2bc
cmp ebp, dword [esp + 0x50]
jge 0x41a3df
mov eax, dword [esp + 0x54]
lea ebx, [edx + 2]
mov dword [0x424050], ebx
mov edi, dword [eax + ebp*4]
mov dword [0x425ae0], edi
jmp 0x41a2bc
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x41a41e
mov ecx, dword [0x4253c0]
mov dword [esp], ecx
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
mov eax, dword [esp + 0x34]
mov edi, dword [eax + 0xc]
mov dword [0x424058], edi
mov esi, dword [esp + 0x58]
cmp byte [esi], 0x3a
setne dl
movzx ecx, dl
lea eax, [ecx + ecx*4 + 0x3a]
jmp 0x41a173
mov ebx, dword [esp + 0x54]
mov edx, dword [ebx + ebp*4 - 4]
mov ebp, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edx
mov esi, dword [ebx]
add ebp, 0x40
mov dword [esp + 4], 0x419e40
mov dword [esp], ebp
mov dword [esp + 8], esi
call sub.msvcrt.dll_fprintf
jmp 0x41a3e7
mov edi, dword [esp + 0x64]
test edi, edi
je 0x41a48c
mov ebp, dword [0x424050]
mov eax, dword [esp + 0x54]
mov esi, dword [eax + ebp*4]
cmp byte [esi + 1], 0x2d
je 0x41a492
mov ebx, dword [0x4253c0]
mov ecx, dword [esp + 0x58]
movsx ebp, byte [ebx]
mov dword [esp], ecx
mov dword [esp + 4], ebp
call sub.msvcrt.dll_strchr
test eax, eax
jne 0x41a525
mov ebp, dword [0x424050]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x41a4e1
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + ebp*4]
cmp byte [edx + 1], 0x2d
je 0x41a4fa
mov esi, dword [0x4253c0]
mov eax, dword [esp + 0x54]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0x10], esi
movsx edi, byte [edx]
add ecx, 0x40
mov dword [esp + 0xc], edi
mov ebx, dword [eax]
mov dword [esp + 4], 0x419e80
mov dword [esp], ecx
mov dword [esp + 8], ebx
call sub.msvcrt.dll_fprintf
mov ebp, dword [0x424050]
mov edx, 0x419ea0
inc ebp
mov dword [0x4253c0], edx
mov dword [0x424050], ebp
xor ecx, ecx
jmp 0x41a36e
mov ebp, dword [0x4253c0]
mov edi, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], ebp
mov esi, dword [ecx]
add edi, 0x40
mov dword [esp + 4], 0x419ec0
mov dword [esp], edi
mov dword [esp + 8], esi
call sub.msvcrt.dll_fprintf
jmp 0x41a4db
mov edi, dword [0x4253c0]
mov eax, dword [esp + 0x58]
lea ebp, [edi + 1]
movzx ebx, byte [edi]
mov dword [0x4253c0], ebp
mov dword [esp], eax
movsx esi, bl
mov ebp, esi
mov dword [esp + 4], esi
call sub.msvcrt.dll_strchr
mov edx, dword [0x4253c0]
mov edi, edx
cmp byte [edx], 0
jne 0x41a55f
inc dword [0x424050]
test eax, eax
je 0x41a964
cmp bl, 0x3a
je 0x41a964
cmp byte [eax], 0x57
je 0x41a637
movzx ecx, byte [eax + 1]
cmp cl, 0x3a
je 0x41a589
mov eax, esi
jmp 0x41a173
cmp byte [eax + 2], 0x3a
je 0x41a621
cmp byte [edi], 0
je 0x41a5ae
inc dword [0x424050]
mov dword [0x425ae0], edi
xor edx, edx
mov dword [0x4253c0], edx
jmp 0x41a582
mov edx, dword [0x424050]
cmp edx, dword [esp + 0x50]
je 0x41a5d2
mov eax, dword [esp + 0x54]
lea ecx, [edx + 1]
mov dword [0x424050], ecx
mov ebx, dword [eax + edx*4]
mov dword [0x425ae0], ebx
jmp 0x41a5a4
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x41a5f8
mov dword [0x424058], ebp
mov ebp, dword [esp + 0x58]
cmp byte [ebp], 0x3a
je 0x41a5f1
mov esi, 0x3f
jmp 0x41a5a4
mov esi, 0x3a
jmp 0x41a5a4
mov dword [esp + 0xc], ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [edi]
add ebx, 0x40
mov dword [esp + 4], 0x419ee0
mov dword [esp + 8], esi
mov dword [esp], ebx
call sub.msvcrt.dll_fprintf
jmp 0x41a5da
cmp byte [edi], 0
jne 0x41a598
xor edx, edx
mov dword [0x425ae0], edx
jmp 0x41a5a4
movzx ecx, byte [eax + 1]
cmp cl, 0x3b
jne 0x41a57d
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
cmp byte [edx], 0
je 0x41a8ef
inc dword [0x424050]
mov dword [0x425ae0], edx
mov ecx, dword [0x425ae0]
mov edi, ecx
mov dword [0x4253c0], ecx
movzx eax, byte [ecx]
test al, al
je 0x41a69e
cmp al, 0x3d
je 0x41a69e
inc edi
movzx eax, byte [edi]
test al, al
je 0x41a69e
cmp al, 0x3d
jne 0x41a692
mov esi, dword [esp + 0x5c]
xor ebp, ebp
mov eax, dword [esi]
test eax, eax
je 0x41a833
mov ecx, eax
mov dword [esp], ecx
mov ebx, dword [0x4253c0]
mov eax, edi
mov dword [esp + 4], ebx
sub eax, ebx
mov dword [esp + 8], eax
call sub.msvcrt.dll_strncmp
test eax, eax
je 0x41a8a0
add esi, 0x10
inc ebp
mov edx, dword [esi]
test edx, edx
mov ecx, edx
jne 0x41a6b0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x41a6f2
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x41a845
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x41a833
cmp byte [edi], 0
je 0x41a7b0
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x41a75a
lea esi, [edi + 1]
mov dword [0x425ae0], esi
mov edi, dword [0x4253c0]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x41a742
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x60]
mov dword [ebp], ebx
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 8]
test edx, edx
jne 0x41a2f9
mov edx, dword [esp + 0x24]
jmp 0x41a2f1
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x41a77b
mov esi, dword [0x4253c0]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
jmp 0x41a374
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov ebp, dword [sym.imp.msvcrt.dll__iob]
mov ecx, dword [eax]
add ebp, 0x40
mov dword [esp + 0xc], ecx
mov edi, dword [ebx]
mov dword [esp + 4], 0x419f20
mov dword [esp], ebp
mov dword [esp + 8], edi
call sub.msvcrt.dll_fprintf
jmp 0x41a762
mov edx, dword [esp + 0x24]
cmp dword [edx + 4], 1
jne 0x41a71b
mov edx, dword [0x424050]
cmp edx, dword [esp + 0x50]
jge 0x41a7e5
mov ebx, dword [esp + 0x54]
lea edi, [edx + 1]
mov dword [0x424050], edi
mov ebp, dword [ebx + edx*4]
mov dword [0x425ae0], ebp
jmp 0x41a71b
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x41a806
mov ebx, dword [0x4253c0]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
jmp 0x41a408
mov edi, dword [esp + 0x54]
mov esi, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [edi + edx*4 - 4]
add esi, 0x40
mov dword [esp + 0xc], ebp
mov edx, dword [edi]
mov dword [esp + 4], 0x419e40
mov dword [esp], esi
mov dword [esp + 8], edx
call sub.msvcrt.dll_fprintf
jmp 0x41a7ed
xor ecx, ecx
mov eax, 0x57
mov dword [0x4253c0], ecx
jmp 0x41a173
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x41a86c
mov edi, dword [0x4253c0]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
inc dword [0x424050]
jmp 0x41a374
mov esi, dword [esp + 0x54]
mov ebp, dword [0x424050]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [esi + ebp*4]
add ecx, 0x40
mov dword [esp + 0xc], edx
mov ebx, dword [esi]
mov dword [esp + 4], 0x419f60
mov dword [esp], ecx
mov dword [esp + 8], ebx
call sub.msvcrt.dll_fprintf
jmp 0x41a84d
mov ecx, dword [0x4253c0]
mov ebx, edi
mov edx, dword [esi]
sub ebx, ecx
mov dword [esp], edx
call sub.msvcrt.dll_strlen
cmp ebx, eax
je 0x41a8da
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x41a8cd
mov dword [esp + 0x1c], 1
jmp 0x41a6d2
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], ebp
jmp 0x41a6d2
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], 1
jmp 0x41a6de
mov edx, dword [0x424050]
cmp edx, dword [esp + 0x50]
je 0x41a916
mov ebp, dword [esp + 0x54]
lea eax, [edx + 1]
mov dword [0x424050], eax
mov ebx, dword [ebp + edx*4]
mov dword [0x425ae0], ebx
jmp 0x41a679
mov ebp, dword [esp + 0x38]
test ebp, ebp
jne 0x41a93b
mov dword [0x424058], esi
mov esi, dword [esp + 0x58]
cmp byte [esi], 0x3a
je 0x41a937
mov bl, 0x3f
movsx eax, bl
jmp 0x41a173
mov bl, 0x3a
jmp 0x41a92f
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x54]
mov edx, dword [sym.imp.msvcrt.dll__iob]
mov ecx, dword [edi]
add edx, 0x40
mov dword [esp + 4], 0x419ee0
mov dword [esp + 8], ecx
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
jmp 0x41a91e
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x41a99d
mov edx, dword [0x4253e0]
test edx, edx
je 0x41a9a8
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x54]
mov esi, dword [ecx]
mov dword [esp + 4], 0x419f81
mov dword [esp + 8], esi
mov ebx, dword [sym.imp.msvcrt.dll__iob]
add ebx, 0x40
mov dword [esp], ebx
call sub.msvcrt.dll_fprintf
mov dword [0x424058], ebp
jmp 0x41a374
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x54]
mov edi, dword [eax]
mov dword [esp + 4], 0x419f9b
mov dword [esp + 8], edi
jmp 0x41a98c
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x41a9e7
mov edi, dword [0x4253c0]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add dword [0x4253c0], eax
inc dword [0x424050]
jmp 0x41a4f3
mov ebx, dword [esp + 0x54]
mov ebp, dword [0x424050]
mov esi, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [ebx + ebp*4]
add esi, 0x40
mov dword [esp + 0xc], edx
mov ecx, dword [ebx]
mov dword [esp + 4], 0x419fb5
mov dword [esp], esi
mov dword [esp + 8], ecx
call sub.msvcrt.dll_fprintf
jmp 0x41a9c8
mov edx, dword [0x4253c0]
mov ebx, edi
mov ecx, dword [esi]
sub ebx, edx
mov dword [esp], ecx
call sub.msvcrt.dll_strlen
cmp ebx, eax
je 0x41aa83
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x41aa76
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x41aa54
mov ecx, dword [esp + 0x34]
mov edx, dword [esi + 4]
cmp dword [ecx + 4], edx
je 0x41aa61
mov dword [esp + 0x2c], 1
jmp 0x41a25c
mov ebx, dword [esi + 8]
cmp dword [ecx + 8], ebx
jne 0x41aa54
mov edx, dword [esi + 0xc]
cmp dword [ecx + 0xc], edx
jne 0x41aa54
jmp 0x41a25c
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], ebp
jmp 0x41a25c
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], 1
jmp 0x41a270
mov ebx, dword [esp + 0x58]
movsx edx, al
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msvcrt.dll_strchr
test eax, eax
jne 0x41a525
jmp 0x41a1e7
mov ecx, 1
jmp 0x41a1a2
mov eax, dword [0x4253f0]
cmp eax, dword [0x425400]
je 0x41a180
mov dword [0x424050], eax
jmp 0x41a180
mov dword [0x4253f0], ebp
jmp 0x41a130
mov edx, dword [0x4253f0]
mov eax, dword [0x425400]
cmp edx, eax
je 0x41ab53
cmp eax, ebp
je 0x41ab0d
mov ebx, dword [esp + 0x54]
mov dword [esp], ebx
call fcn.0041abe0
mov ebp, dword [0x424050]
cmp ebp, dword [esp + 0x50]
jge 0x41ab40
mov esi, dword [esp + 0x54]
mov eax, dword [esi + ebp*4]
cmp byte [eax], 0x2d
je 0x41ab4b
nop
inc ebp
cmp ebp, dword [esp + 0x50]
mov dword [0x424050], ebp
jge 0x41ab40
mov edx, dword [esp + 0x54]
mov eax, dword [edx + ebp*4]
cmp byte [eax], 0x2d
jne 0x41ab20
cmp byte [eax + 1], 0
je 0x41ab20
nop
mov dword [0x425400], ebp
jmp 0x41a0df
cmp byte [eax + 1], 0
je 0x41ab20
jmp 0x41ab40
cmp edx, ebp
je 0x41ab0d
mov dword [0x4253f0], ebp
jmp 0x41ab0d
mov ebx, dword [esp + 0x58]
xor esi, esi
mov dword [0x4253d0], esi
inc ebx
jmp 0x41a090
mov edx, 2
mov ebx, ecx
mov dword [0x4253d0], edx
jmp 0x41ab6b
mov ebx, 1
mov ebp, 1
mov dword [0x424050], ebx
jmp 0x41a040