Function at 0x406245
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
push ebx
mov esi, 0x65
mov ecx, esi
xor ecx, 0x78d200
movzx edi, cl
cmp edi, 0x64
jne 0x406269
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
cmp edi, 0x65
je 0x406275
mov eax, edi
jmp 0x4064a5
mov edx, esi
add edx, edi
mov esi, edx
cmp edi, 0x65
je 0x406289
mov ecx, edi
mov eax, ecx
jmp 0x4064a5
mov ecx, edi
or ecx, esi
add ecx, 0xffffff11
push ecx
mov eax, esi
imul eax, edi
add eax, 0xffffb04e
push eax
push 0
mov eax, edi
and eax, esi
sub eax, 0x40
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
movzx edi, al
mov ecx, edi
test cl, cl
je 0x4062c2
call dword [sym.imp.MSVCRT.dll__except_handler3]
mov edx, edi
or edx, edx
movzx ebx, dl
mov ecx, esi
sub ecx, 0x7c1d092f
add ecx, esi
movzx edi, cl
mov edx, esi
or edx, edi
add edx, 0xffffff11
push edx
mov ecx, edi
add ecx, esi
add ecx, 0xfffffed1
push ecx
push 0
mov edx, edi
xor edx, ebx
add edx, 0xffffff9b
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
movzx edi, al
mov edx, edi
test dl, dl
je 0x40630f
call dword [sym.imp.MSVCRT.dll__except_handler3]
mov ecx, esi
or ecx, ecx
or ecx, 0x30f00000
movzx ebx, cl
mov ecx, ebx
shr ecx, 3
movzx ebx, cl
cmp ebx, 0x19
jle 0x406339
push edi
mov ecx, edi
sub ecx, 0x27721b86
sub ecx, edi
push ecx
push ebx
call dword [ebp - 4]
cmp ebx, 0x18
jne 0x406347
mov edx, edi
mov eax, edx
jmp 0x4064a5
mov ecx, edi
add ecx, 0x50
movzx edi, cl
cmp esi, 0xca
je 0x40637d
mov edx, edi
xor edx, 0x3fd8
sub edx, ebx
push edx
mov ecx, ebx
and ecx, ecx
mov edx, ebx
imul edx, ecx
push edx
mov ecx, ebx
xor ecx, edi
xor ecx, 0x63d8
push ecx
call dword [sym.imp.MSVCRT.dll__mbschr]
mov eax, edi
xor eax, esi
add eax, 0xffffff66
push eax
mov eax, esi
or eax, ebx
sub eax, 0xdb
push eax
push 0
mov edx, ebx
sub edx, esi
add edx, 0xb1
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
mov esi, eax
test esi, esi
je 0x4063b4
call dword [sym.imp.MSVCRT.dll__except_handler3]
test esi, esi
jne 0x4063c1
push edi
call fcn.004064be
movzx edi, al
mov edx, esi
and edx, edi
mov dword [ebp - 8], edx
mov edx, dword [ebp - 8]
imul edx, edx
imul edx, dword [ebp - 8]
movzx ebx, dl
mov ecx, ebx
movzx edi, cl
mov edx, ebx
test dl, dl
jne 0x4063e8
call fcn.00406f79
movzx edi, al
mov ecx, esi
movzx ebx, cl
mov eax, dword [ebp - 8]
and eax, 0x2cdd
mov edx, edi
imul edx, eax
mov dword [ebp - 0xc], edx
cmp edi, 0x79
jle 0x406415
mov ecx, edi
or ecx, 0xc6
mov eax, esi
add eax, ecx
push eax
call dword [sym.imp.MSVCRT.dll__nextafter]
cmp dword [ebp - 0xc], 0
jge 0x406424
mov edx, edi
mov eax, edx
jmp 0x4064a5
mov eax, edi
mov esi, eax
mov edx, dword [ebp - 0xc]
or edx, esi
sub edx, 0x79
push edx
push 0
push 0
mov ecx, esi
or ecx, dword [ebp - 8]
add ecx, 0xffffff87
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
mov esi, eax
test esi, esi
je 0x406454
call dword [sym.imp.MSVCRT.dll__except_handler3]
mov eax, dword [ebp - 0xc]
sub eax, 0x30e1
movzx ebx, al
cmp esi, 0xffffffff
jne 0x40646d
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_LCMapStringA]
mov edx, edi
xor edx, dword [ebp - 8]
add edx, 0xffffff87
push edx
mov eax, dword [ebp - 8]
imul eax, esi
push eax
push 0
mov eax, edi
or eax, esi
add eax, 0xffffff87
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CompareStringA]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
je 0x4064a1
call dword [sym.imp.MSVCRT.dll__except_handler3]
mov edx, ebx
mov eax, edx
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret