Function at 0x48ca60
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x48]
test ecx, ecx
je 0x48c7ba
mov ebx, dword [0x4b8418]
mov eax, dword [0x4b8404]
mov edi, edx
test ebx, ebx
je 0x48c630
cmp eax, 0xffffffff
je 0x48c644
mov edx, dword [0x539988]
test edx, edx
jne 0x48c644
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
cmp al, 0x2d
je 0x48c686
mov ecx, dword [0x4b8404]
test ecx, ecx
jne 0x48c770
cmp al, 0x2b
je 0x48c808
mov dword [0x539984], 0
test edx, edx
je 0x48c537
mov dword [0x4b8408], 0xffffffff
mov dword [0x4b840c], 0xffffffff
mov ebx, dword [0x4b8418]
mov dword [0x539988], 0
cmp ebx, ebp
jge 0x48c780
mov edx, dword [edi + ebx*4]
cmp byte [edx], 0x2d
je 0x48c698
mov dword [0x4b8410], 0x501128
test esi, 2
jne 0x48c7d0
test esi, 1
je 0x48c7ba
mov eax, dword [0x4b840c]
cmp eax, 0xffffffff
je 0x48c760
mov edx, dword [0x4b8408]
cmp edx, 0xffffffff
je 0x48c52e
mov dword [esp], edi
mov ecx, ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
call fcn.0048bf50
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [0x4b8408], 0xffffffff
sub edx, eax
mov eax, ebx
sub eax, edx
mov dword [0x4b840c], eax
add ebx, 1
mov dword [0x4b8418], ebx
mov ecx, dword [0x4b8410]
movsx eax, byte [ecx]
test al, al
je 0x48c4a0
mov edx, dword [esp + 0x40]
test edx, edx
je 0x48c5ba
mov edx, dword [0x4b8418]
cmp dword [edi + edx*4], ecx
je 0x48c5ba
cmp al, 0x2d
je 0x48c8ec
and esi, 4
je 0x48c890
cmp al, 0x3a
je 0x48c8f5
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
setne al
movzx eax, al
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, edi
call fcn.0048c0a0
mov ebx, eax
cmp eax, 0xffffffff
jne 0x48c9a7
mov ecx, dword [0x4b8410]
movzx eax, byte [ecx]
lea esi, [ecx + 1]
movsx ebx, al
mov dword [0x4b8410], esi
cmp al, 0x3a
je 0x48c8a4
cmp ebx, 0x2d
je 0x48ca1e
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], ebx
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call sub.msvcrt.dll_strchr
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x48c8a4
cmp dword [esp + 0x40], 0
movzx edx, byte [eax + 1]
je 0x48c610
cmp ebx, 0x57
jne 0x48c610
cmp dl, 0x3b
je 0x48c8fc
cmp dl, 0x3a
je 0x48c726
cmp byte [ecx + 1], 0
jne 0x48c7bf
add dword [0x4b8418], 1
jmp 0x48c7bf
mov dword [0x539988], 1
mov dword [0x4b8418], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.POSIXLY_CORRECT
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edx, dword [0x539988]
sub esp, 0xc
test eax, eax
setne al
movzx eax, al
mov dword [0x4b8404], eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
cmp al, 0x2d
jne 0x48c464
or esi, 2
add dword [esp + 0x1c], 1
jmp 0x48c47a
movsx eax, byte [edx + 1]
test al, al
jne 0x48c810
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x2d
mov dword [esp + 0x14], edx
mov dword [esp], eax
call sub.msvcrt.dll_strchr
mov edx, dword [esp + 0x14]
test eax, eax
je 0x48c4c4
cmp dword [0x4b840c], 0xffffffff
je 0x48c6de
cmp dword [0x4b8408], 0xffffffff
je 0x48c969
lea esi, [edx + 1]
mov dword [0x4b8410], esi
cmp byte [edx + 1], 0
mov dword [esp + 0x14], edx
jne 0x48c8d3
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x2d
mov dword [esp], eax
call sub.msvcrt.dll_strchr
mov edx, dword [esp + 0x14]
test eax, eax
je 0x48c7ba
cmp byte [eax + 1], 0x3a
mov ebx, 0x2d
mov ecx, edx
jne 0x48c623
mov dword [0x539984], 0
cmp byte [ecx + 1], 0
mov edx, dword [0x4b8418]
je 0x48c9b6
mov dword [0x539984], esi
mov dword [0x4b8410], 0x501128
add edx, 1
mov dword [0x4b8418], edx
jmp 0x48c7bf
mov dword [0x4b840c], ebx
jmp 0x48c52e
and esi, 0xfffffffe
cmp al, 0x2b
jne 0x48c47a
jmp 0x48c689
mov esi, dword [0x4b8408]
mov ebp, dword [0x4b840c]
mov dword [0x4b8410], 0x501128
cmp esi, 0xffffffff
jne 0x48c7ee
cmp ebp, 0xffffffff
je 0x48c7a6
mov dword [0x4b8418], ebp
mov dword [0x4b8408], 0xffffffff
mov dword [0x4b840c], 0xffffffff
mov ebx, 0xffffffff
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
add ebx, 1
mov dword [0x539984], edx
mov dword [0x4b8418], ebx
add esp, 0x2c
mov ebx, 1
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
mov edx, esi
sub esi, ebp
mov ecx, ebx
mov eax, ebp
sub ebx, esi
call fcn.0048bf50
mov dword [0x4b8418], ebx
jmp 0x48c7a6
and esi, 0xfffffffe
jmp 0x48c689
mov ecx, dword [0x4b840c]
mov dword [esp + 0x14], ecx
cmp ecx, 0xffffffff
je 0x48c82c
cmp dword [0x4b8408], 0xffffffff
je 0x48c974
lea ecx, [edx + 1]
mov dword [0x4b8410], ecx
cmp al, 0x2d
jne 0x48c548
cmp byte [edx + 2], 0
jne 0x48c548
mov esi, dword [0x4b8408]
add ebx, 1
mov dword [0x4b8410], 0x501128
mov dword [0x4b8418], ebx
cmp esi, 0xffffffff
je 0x48c7a6
mov dword [esp], edi
mov edi, dword [esp + 0x14]
mov edx, esi
mov ecx, ebx
sub esi, edi
mov eax, edi
call fcn.0048bf50
sub ebx, esi
mov dword [0x4b8418], ebx
jmp 0x48c7a6
lea esi, [ecx + 1]
movsx ebx, al
mov dword [0x4b8410], esi
cmp al, 0x3a
jne 0x48c5d7
cmp byte [ecx + 1], 0
jne 0x48c8b1
add dword [0x4b8418], 1
mov eax, dword [0x4b841c]
test eax, eax
je 0x48c8c3
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x3a
jne 0x48c8da
mov dword [0x4b8414], ebx
mov ebx, 0x3f
jmp 0x48c7bf
mov ebx, 0x2d
jmp 0x48c8b1
mov dword [esp + 4], ebx
mov dword [esp], str.unknown_option_____c
call fcn.0048c020
jmp 0x48c8c3
add ecx, 1
mov dword [0x4b8410], ecx
xor eax, eax
jmp 0x48c58c
cmp byte [ecx + 1], 0
jne 0x48c987
mov eax, dword [0x4b8418]
add eax, 1
mov dword [0x4b8418], eax
cmp eax, ebp
jl 0x48c97f
mov edx, dword [0x4b841c]
mov dword [0x4b8410], 0x501128
test edx, edx
je 0x48c948
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x3a
je 0x48c948
mov dword [esp + 4], 0x57
mov dword [esp], str.option_requires_an_argument_____c
call fcn.0048c020
mov dword [0x4b8414], 0x57
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x3a
jne 0x48c8c9
mov ebx, 0x3a
jmp 0x48c7bf
mov dword [0x4b8408], ebx
jmp 0x48c6de
mov dword [0x4b8408], ebx
jmp 0x48c82c
mov eax, dword [edi + eax*4]
mov dword [0x4b8410], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], 0
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, edi
call fcn.0048c0a0
mov ebx, eax
mov dword [0x4b8410], 0x501128
jmp 0x48c7bf
cmp byte [eax + 2], 0x3a
je 0x48c746
add edx, 1
mov dword [0x4b8418], edx
cmp ebp, edx
jle 0x48c9da
mov eax, dword [edi + edx*4]
mov dword [0x539984], eax
jmp 0x48c746
mov eax, dword [0x4b841c]
mov dword [0x4b8410], 0x501128
test eax, eax
je 0x48ca06
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x3a
je 0x48ca06
mov dword [esp + 4], ebx
mov dword [esp], str.option_requires_an_argument_____c
call fcn.0048c020
mov eax, dword [esp + 0x1c]
mov dword [0x4b8414], ebx
cmp byte [eax], 0x3a
jne 0x48c8c9
jmp 0x48c95f
mov edx, ecx
jmp 0x48c6e7
push ebx
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], 1
mov dword [esp + 8], ebx
pop ebx
jmp 0x48c410