Function at 0x457c80
Capabilities:
Query environment variable

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x10]
shl ebp, 4
add ebp, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
push esi
push edi
test ecx, ecx
je 0x457caa
mov esi, dword [esp + 0x14]
push esi
call fcn.00474870
inc eax
add eax, esi
pop edi
pop esi
pop ebp
pop ebx
ret 0xc
mov edi, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov dword [esp + 0x1c], ebp
test ebp, ebp
je 0x457e9c
mov eax, dword [ebp]
test eax, eax
je 0x457e9c
mov esi, dword [esp + 0x14]
jmp 0x457cd0
mov edx, eax
xor ebx, ebx
sub edx, edi
xor ecx, ecx
cmp edi, eax
cmova edx, ebx
test edx, edx
je 0x457cec
mov al, byte [edi]
inc ecx
mov byte [esi], al
inc edi
inc esi
cmp ecx, edx
jb 0x457ce1
mov ebp, dword [ebp + 4]
mov ebx, esi
movzx eax, byte [ebp + 0x17]
cmp eax, 3
ja case.default.0x457cfe
jmp dword [eax*4 + 0x457ec0]
mov ecx, ebp
call fcn.004013b0
cmp dword [0x4ad9c8], 0
jne 0x457dc4
cmp dword [ebp + 0xc], 0
jne 0x457dc4
cmp dword [0x4b0468], ebp
jne 0x457d2f
test esi, esi
jne 0x457d8a
push 0
lea eax, [esp + 0x18]
push eax
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x457d86
mov dword [0x4b0468], 0
test esi, esi
je 0x457d7e
mov eax, dword [0x4ad9d8]
test eax, eax
je 0x457d6f
push 0
push dword [ebp + 0x18]
mov ecx, 0x4ae9b0
push str.An_environment_variable_is_being_accessed__see_NoEnv.
push eax
call fcn.0042d370
mov ecx, dword [ebp + 0x18]
mov edx, esi
call fcn.00472a30
jmp 0x457e7a
lea ecx, [eax - 1]
jmp 0x457e7c
test esi, esi
je 0x457db7
cmp byte [ebp + 0x17], 0
jne 0x457d95
mov eax, dword [ebp + 0xc]
jmp 0x457d97
mov eax, ebp
test byte [eax + 0x15], 4
je 0x457da3
push ebp
call fcn.0042d4a0
mov byte [esi], 0
xor ecx, ecx
mov dword [0x4b0468], 0
jmp 0x457e7c
mov dword [0x4b0468], ebp
xor ecx, ecx
jmp 0x457e7c
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
test esi, esi
je 0x457e7c
test ecx, ecx
jne 0x457df5
cmp byte [ebp + 0x17], cl
mov eax, ebp
cmove eax, ecx
test byte [eax + 0x15], 4
je 0x457deb
push ebp
call fcn.0042d4a0
mov byte [esi], 0
xor ecx, ecx
jmp 0x457e7c
mov eax, dword [ebp + 8]
cmp esi, eax
je 0x457e7c
cmp ecx, 0x186a0
jae 0x457e25
mov cl, byte [eax]
test cl, cl
je 0x457e1c
mov edi, edi
mov byte [ebx], cl
lea eax, [eax + 1]
mov cl, byte [eax]
inc ebx
test cl, cl
jne 0x457e10
mov ecx, dword [esp + 0x18]
mov byte [ebx], 0
jmp 0x457e7c
push ecx
push eax
push esi
call fcn.0048cfd0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov byte [ecx + esi], 0
jmp 0x457e7c
mov ecx, dword [ebp + 0xc]
push esi
call fcn.00474870
jmp 0x457e7a
push esi
mov ecx, 0x4af020
call fcn.004045a0
mov ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
test esi, esi
je 0x457e7c
mov byte [ecx + esi], al
jmp 0x457e7c
test esi, esi
je 0x457dee
mov byte [esi], 0
xor ecx, ecx
jmp 0x457e7c
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
push esi
call eax
add esp, 8
mov ecx, eax
mov ebp, dword [esp + 0x1c]
add esi, ecx
movzx eax, word [ebp + 0xa]
add ebp, 0xc
add edi, eax
mov dword [esp + 0x1c], ebp
mov eax, dword [ebp]
test eax, eax
jne 0x457cd0
jmp 0x457ea0
mov esi, dword [esp + 0x14]
mov al, byte [edi]
test al, al
je 0x457eb2
sub edi, esi
mov byte [esi], al
inc esi
mov al, byte [edi + esi]
test al, al
jne 0x457ea8
pop edi
mov byte [esi], 0
lea eax, [esi + 1]
pop esi
pop ebp
pop ebx
ret 0xc