Function at 0x45e700
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], str.PRINTF_EXPONENT_DIGITS
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x64], 0xfffffffd
mov dword [esp + 0x6c], 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x74], 0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xa0]
and eax, 0x6000
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
xor eax, eax
mov word [esp + 0x68], ax
xor eax, eax
mov word [esp + 0x70], ax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x78], eax
call sub.msvcrt.dll_getenv
test eax, eax
je 0x45e79e
movsx eax, byte [eax]
sub eax, 0x30
cmp eax, 2
jbe 0x45e7ac
call fcn.00462a30
test al, 1
mov edx, 3
je 0x45e7b1
mov edx, 2
mov dword [esp + 0x7c], edx
movzx ecx, byte [ebp]
lea esi, [esi]
movsx eax, cl
lea esi, [ebp + 1]
test eax, eax
je 0x45e860
cmp eax, 0x25
jne 0x45e870
mov eax, dword [esp + 0x20]
movzx ecx, byte [ebp + 1]
mov edx, esi
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x5c], 0xffffffff
xor ebx, ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], esi
mov dword [esp + 0x58], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x1c], eax
test cl, cl
je 0x45e850
lea eax, [ecx - 0x20]
lea ebp, [edx + 1]
movsx esi, cl
cmp al, 0x5a
ja case.0x45e823.1
movzx eax, al
jmp dword [eax*4 + 0x505974]
movzx ecx, byte [edx + 1]
mov dword [esp + 0x18], 0
mov edx, ebp
mov ebx, 4
test cl, cl
jne 0x45e80f
mov esi, esi
lea edi, [edi]
movsx eax, cl
mov ebp, edx
test eax, eax
lea esi, [ebp + 1]
jne 0x45e7ce
mov eax, dword [esp + 0x74]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [esp + 0x54]
call fcn.0045d020
movzx ecx, byte [ebp + 1]
mov ebp, esi
jmp 0x45e7c0
mov eax, dword [esp + 0x18]
sub eax, 2
cmp eax, 1
jbe case.0x45e823.51
mov ebx, dword [edi]
lea esi, [edi + 4]
test ebx, ebx
je 0x45ef86
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, eax
mov eax, ebx
lea ecx, [esp + 0x54]
mov edi, esi
call fcn.0045d1a0
nop
lea esi, [esi]
movzx ecx, byte [ebp]
jmp 0x45e7c0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], 0xffffffff
sub eax, 2
cmp eax, 1
jbe 0x45ec6c
mov eax, dword [edi]
lea ebx, [edi + 4]
lea ecx, [esp + 0x54]
mov edx, 1
mov edi, ebx
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
call fcn.0045d1a0
jmp 0x45e8c0
mov eax, dword [esp + 0x58]
or eax, 0x20
test al, 4
mov dword [esp + 0x58], eax
je 0x45ec9c
fld xword [edi]
lea ebx, [edi + 0xc]
lea eax, [esp + 0x54]
mov edi, ebx
fstp xword [esp]
call fcn.0045e1c0
jmp 0x45e8c0
mov eax, dword [esp + 0x58]
or eax, 0x20
test al, 4
mov dword [esp + 0x58], eax
je 0x45ec4c
fld xword [edi]
lea ebx, [edi + 0xc]
lea eax, [esp + 0x54]
mov edi, ebx
fstp xword [esp]
call fcn.0045dc20
jmp 0x45e8c0
or dword [esp + 0x58], 0x80
cmp dword [esp + 0x18], 3
je 0x45f059
cmp dword [esp + 0x18], 2
je 0x45ef4d
mov eax, dword [edi]
lea ecx, [edi + 4]
cdq
cmp dword [esp + 0x18], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
je 0x45f024
cmp dword [esp + 0x18], 5
mov edi, ecx
je 0x45f097
mov ecx, edx
sar ecx, 0x1f
mov dword [esp + 0x48], ecx
sar ecx, 0x1f
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x54]
call fcn.0045d850
jmp 0x45e8c0
cmp dword [esp + 0x18], 3
je 0x45f06e
cmp dword [esp + 0x18], 2
je 0x45ef60
xor edx, edx
cmp dword [esp + 0x18], 1
mov eax, dword [edi]
lea ecx, [edi + 4]
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
je 0x45f039
cmp dword [esp + 0x18], 5
mov edi, ecx
je 0x45f083
cmp esi, 0x75
lea ecx, [esp + 0x54]
je 0x45e9c8
mov dword [esp], ecx
mov ecx, edx
mov edx, eax
mov eax, esi
call fcn.0045de50
jmp 0x45e8c0
movzx ecx, byte [edx + 1]
or dword [esp + 0x58], 4
mov edx, ebp
mov ebx, 4
jmp 0x45e80b
movzx ecx, byte [edx + 1]
cmp cl, 0x36
je 0x45ee1d
cmp cl, 0x33
je 0x45ef95
mov edx, ebp
mov dword [esp + 0x18], 0
mov ebx, 4
jmp 0x45e80b
test ebx, ebx
jne 0x45ea82
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x58]
je 0x45efc3
mov edx, dword [edi]
lea eax, [esp + 0x54]
lea ebx, [edi + 4]
xor ecx, ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp], eax
mov eax, 0x78
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], edx
mov edi, ebx
call fcn.0045de50
jmp 0x45e8c0
cmp dword [esp + 0x18], 5
mov eax, dword [edi]
mov edx, dword [esp + 0x74]
je 0x45f04f
cmp dword [esp + 0x18], 1
je 0x45efd7
cmp dword [esp + 0x18], 2
je 0x45f0aa
cmp dword [esp + 0x18], 3
mov dword [eax], edx
je 0x45f014
add edi, 4
jmp 0x45e8c0
movzx ecx, byte [edx + 1]
mov dword [esp + 0x18], 3
mov edx, ebp
mov ebx, 4
jmp 0x45e80b
movzx ecx, byte [edx + 1]
cmp cl, 0x68
je 0x45eed3
mov edx, ebp
mov dword [esp + 0x18], 1
mov ebx, 4
jmp 0x45e80b
mov eax, dword [esp + 0x58]
or eax, 0x20
test al, 4
mov dword [esp + 0x58], eax
je 0x45ebfd
fld xword [edi]
lea ebx, [edi + 0xc]
lea eax, [esp + 0x54]
mov edi, ebx
fstp xword [esp]
call fcn.0045dcd0
jmp 0x45e8c0
mov eax, dword [esp + 0x58]
or eax, 0x20
test al, 4
mov dword [esp + 0x58], eax
je 0x45ec21
fld xword [edi]
lea ebx, [edi + 0xc]
lea eax, [esp + 0x54]
mov edi, ebx
fstp xword [esp]
call fcn.0045d780
jmp 0x45e8c0
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
test eax, eax
mov ebx, eax
je 0x45efb4
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, eax
mov eax, ebx
lea ecx, [esp + 0x54]
call fcn.0045d1a0
jmp 0x45e8c0
movzx ecx, byte [edx + 1]
cmp cl, 0x6c
je 0x45eeec
mov edx, ebp
mov dword [esp + 0x18], 2
mov ebx, 4
jmp 0x45e80b
mov eax, dword [esp + 0x58]
test al, 4
jne 0x45eb54
fld qword [edi]
lea ebx, [edi + 8]
lea eax, [esp + 0x54]
fstp xword [esp]
mov edi, ebx
call fcn.0045dcd0
jmp 0x45e8c0
mov eax, dword [esp + 0x58]
test al, 4
jne 0x45eb83
fld qword [edi]
lea ebx, [edi + 8]
lea eax, [esp + 0x54]
fstp xword [esp]
mov edi, ebx
call fcn.0045d780
jmp 0x45e8c0
mov eax, dword [esp + 0x58]
test al, 4
jne 0x45e953
fld qword [edi]
lea ebx, [edi + 8]
lea eax, [esp + 0x54]
fstp xword [esp]
mov edi, ebx
call fcn.0045dc20
jmp 0x45e8c0
mov dword [esp + 0x60], 0xffffffff
mov eax, dword [edi]
lea ebx, [edi + 4]
lea ecx, [esp + 0x54]
mov edx, 1
mov edi, ebx
mov word [esp + 0x40], ax
lea eax, [esp + 0x40]
call fcn.0045d080
jmp 0x45e8c0
mov eax, dword [esp + 0x58]
test al, 4
jne 0x45e923
fld qword [edi]
lea ebx, [edi + 8]
lea eax, [esp + 0x54]
fstp xword [esp]
mov edi, ebx
call fcn.0045e1c0
jmp 0x45e8c0
test ebx, ebx
je 0x45eec0
cmp ebx, 3
ja 0x45ef9b
mov esi, 0x30
cmp ebx, 2
mov eax, edx
mov edx, ebp
jne 0x45ee66
mov ebx, 3
jmp 0x45ee66
cmp ebx, 1
jbe 0x45ef05
movzx ecx, byte [edx + 1]
mov ebx, 4
mov edx, ebp
jmp 0x45e80b
test ebx, ebx
jne 0x45ed50
movzx ecx, byte [edx + 1]
or dword [esp + 0x58], 0x400
mov edx, ebp
jmp 0x45e80b
test ebx, ebx
jne 0x45ed50
movzx ecx, byte [edx + 1]
or dword [esp + 0x58], 0x100
mov edx, ebp
jmp 0x45e80b
test ebx, ebx
jne 0x45ed50
or dword [esp + 0x58], 0x800
lea esi, [esi]
movzx ecx, byte [edx + 1]
mov edx, ebp
jmp 0x45e80b
test ebx, ebx
jne 0x45ed50
movzx ecx, byte [edx + 1]
or dword [esp + 0x58], 0x40
mov edx, ebp
jmp 0x45e80b
test ebx, ebx
jne 0x45ed50
lea esi, [esp + 0x40]
mov dword [esp + 0x2c], edx
or dword [esp + 0x58], 0x1000
mov dword [esp + 0x40], 0
call sub.msvcrt.dll_localeconv
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x10
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
lea eax, [esp + 0x3e]
mov dword [esp], eax
call fcn.00458950
test eax, eax
mov edx, dword [esp + 0x2c]
jle 0x45edc6
movzx ecx, word [esp + 0x3e]
mov word [esp + 0x70], cx
movzx ecx, byte [edx + 1]
mov dword [esp + 0x6c], eax
mov edx, ebp
jmp 0x45e80b
lea edx, [esp + 0x54]
mov eax, 0x25
call fcn.0045d020
jmp 0x45e8c0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x45ecea
test bl, 5
je 0x45ef25
movzx ecx, byte [edx + 1]
mov dword [esp + 0x1c], 0
mov edx, ebp
mov ebx, 4
jmp 0x45e80b
cmp byte [edx + 2], 0x34
je 0x45f0b4
lea eax, [edx + 2]
mov esi, 0x36
mov edx, ebp
mov dword [esp + 0x18], 0
mov ebx, 4
mov ebp, eax
sub ecx, 0x30
cmp cl, 9
ja 0x45ef9b
cmp ebx, 3
ja 0x45ef9b
test ebx, ebx
jne 0x45ecca
mov eax, edx
mov ebx, 1
mov edx, ebp
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x45ee89
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
js 0x45ef74
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*2 - 0x30]
mov esi, dword [esp + 0x1c]
mov dword [esi], ecx
movzx ecx, byte [eax + 1]
jmp 0x45e80b
mov ebx, dword [edi]
mov eax, 0x505948
lea esi, [edi + 4]
mov edi, esi
test ebx, ebx
cmove ebx, eax
mov dword [esp], ebx
call sub.msvcrt.dll_wcslen
lea ecx, [esp + 0x54]
mov edx, eax
mov eax, ebx
call fcn.0045d080
jmp 0x45e8c0
movzx ecx, byte [edx + 1]
or dword [esp + 0x58], 0x200
mov edx, ebp
jmp 0x45e80b
movzx ecx, byte [edx + 2]
mov dword [esp + 0x18], 5
add edx, 2
mov ebx, 4
jmp 0x45e80b
movzx ecx, byte [edx + 2]
mov dword [esp + 0x18], 3
add edx, 2
mov ebx, 4
jmp 0x45e80b
lea eax, [esp + 0x60]
movzx ecx, byte [edx + 1]
mov dword [esp + 0x60], 0
mov edx, ebp
mov ebx, 2
mov dword [esp + 0x1c], eax
jmp 0x45e80b
mov ecx, dword [edi]
lea eax, [edi + 4]
mov edi, dword [esp + 0x1c]
test ecx, ecx
mov dword [edi], ecx
js 0x45effb
movzx ecx, byte [edx + 1]
mov edi, eax
mov edx, ebp
mov dword [esp + 0x1c], 0
jmp 0x45e80b
mov eax, dword [edi]
add edi, 4
cdq
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x45e9b4
mov eax, dword [edi]
xor edx, edx
add edi, 4
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jmp 0x45ea0f
mov ecx, dword [esp + 0x1c]
sub esi, 0x30
mov dword [ecx], esi
movzx ecx, byte [eax + 1]
jmp 0x45e80b
mov edx, 6
mov eax, str._null_
jmp 0x45e8ad
cmp byte [edx + 2], 0x32
je 0x45efe2
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x54]
mov eax, 0x25
call fcn.0045d020
mov ebp, esi
jmp 0x45e8c0
mov edx, 6
mov eax, str._null_
jmp 0x45ebc2
or ah, 2
mov dword [esp + 0x60], 8
mov dword [esp + 0x58], eax
jmp 0x45ea82
mov word [eax], dx
add edi, 4
jmp 0x45e8c0
movzx ecx, byte [edx + 3]
mov dword [esp + 0x18], 2
add edx, 3
mov ebx, 4
jmp 0x45e80b
test ebx, ebx
jne 0x45f0cd
or dword [esp + 0x58], 0x400
neg dword [esp + 0x5c]
jmp 0x45ef38
mov ebx, edx
add edi, 4
sar ebx, 0x1f
mov dword [eax + 4], ebx
jmp 0x45e8c0
movsx eax, word [esp + 0x40]
mov edi, ecx
cdq
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x45e9b4
movzx eax, word [esp + 0x40]
xor edx, edx
mov edi, ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jmp 0x45ea0f
mov byte [eax], dl
add edi, 4
jmp 0x45e8c0
mov eax, dword [edi]
mov edx, dword [edi + 4]
add edi, 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x45e9b4
mov eax, dword [edi]
mov edx, dword [edi + 4]
add edi, 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x45ea0f
movzx eax, byte [esp + 0x40]
xor edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jmp 0x45ea0f
movsx eax, byte [esp + 0x40]
cdq
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x45e9b4
mov dword [eax], edx
add edi, 4
jmp 0x45e8c0
movzx ecx, byte [edx + 3]
mov dword [esp + 0x18], 3
add edx, 3
mov ebx, 4
jmp 0x45e80b
movzx ecx, byte [edx + 1]
mov dword [esp + 0x60], 0xffffffff
mov edi, eax
mov edx, ebp
mov dword [esp + 0x1c], 0
jmp 0x45e80b