Function at 0x6a310240
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0xcc]
and edi, 0x3000
mov esi, dword [esp + 0xd0]
mov dword [esp + 0xc0], edi
mov dword [esp], str.PRINTF_EXPONENT_DIGITS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x6a310360
movsx eax, byte [eax]
sub eax, 0x30
cmp eax, 2
ja 0x6a310360
mov edx, 2
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x5c], 0xfffffffd
mov word [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
or ch, 2
mov dl, byte [ebx]
mov dword [esp + 0x3c], ecx
movsx eax, dl
test eax, eax
je 0x6a310390
lea edi, [ebx + 1]
cmp eax, 0x25
jne 0x6a310377
mov eax, dword [esp + 0xc0]
lea ecx, [esp + 0x54]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
xor ebp, ebp
mov dl, byte [ebx + 1]
mov dword [esp + 0x38], ecx
mov ebx, edi
xor ecx, ecx
test dl, dl
je 0x6a3102f0
movsx eax, dl
sub edx, 0x20
inc ebx
cmp dl, 0x5a
jbe 0x6a3103a0
cmp eax, 0x39
jle 0x6a3103f0
lea edx, [esp + 0x4c]
mov eax, 0x25
call fcn.6a30ef00
mov ebx, edi
mov dl, byte [edi]
jmp 0x6a3102f0
call fcn.6a313818
mov edx, 3
test al, 1
je 0x6a310294
jmp 0x6a31028f
lea edx, [esp + 0x4c]
call fcn.6a30ef00
mov dl, byte [ebx + 1]
movsx eax, dl
mov ebx, edi
test eax, eax
jne 0x6a3102fb
mov eax, dword [esp + 0x64]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
and edx, 0xff
jmp dword [edx*4 + str.__n1j_]
mov eax, esi
mov dl, byte [ebx]
mov ebp, 2
mov ecx, 4
mov esi, eax
jmp 0x6a31032f
mov ebp, 2
cmp byte [ebx], 0x6c
jne case.0x6a3103a6.44
inc ebx
mov bp, 3
mov edx, dword [esp + 0x50]
mov eax, esi
or edx, 4
mov ecx, 4
mov dword [esp + 0x50], edx
mov esi, eax
mov dl, byte [ebx]
jmp 0x6a31032f
cmp ecx, 3
ja 0x6a310348
cmp eax, 0x2f
jle 0x6a310348
test ecx, ecx
jne 0x6a310a80
mov cl, 1
mov edx, dword [esp + 0x38]
test edx, edx
je 0x6a310437
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
mov dword [esp + 0x2c], edx
test edx, edx
js 0x6a310b80
mov edx, dword [esp + 0x2c]
lea edx, [edx + edx*4]
lea eax, [eax + edx*2 - 0x30]
mov edx, dword [esp + 0x38]
mov dword [edx], eax
mov eax, esi
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
sub ebp, 2
cmp ebp, 1
jbe case.0x6a3103a6.51
mov edi, dword [esi]
test edi, edi
je 0x6a310c76
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov edx, eax
lea ecx, [esp + 0x4c]
mov eax, edi
call fcn.6a30f070
add esi, 4
mov dl, byte [ebx]
jmp 0x6a3102f0
test ecx, ecx
jne 0x6a31048c
mov ecx, dword [esp + 0xc0]
cmp dword [esp + 0x50], ecx
je 0x6a310c9c
lea eax, [esp + 0x4c]
mov edx, dword [esi]
xor ecx, ecx
mov dword [esp], eax
lea edi, [esi + 4]
mov eax, 0x78
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
mov esi, edi
call fcn.6a30f3c0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, esi
cmp ebp, 4
je 0x6a310baf
cmp ebp, 1
je 0x6a310b51
cmp ebp, 2
je 0x6a3104e2
cmp ebp, 3
je 0x6a310d22
mov eax, dword [eax]
mov edx, dword [esp + 0x64]
add esi, 4
mov dword [eax], edx
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, esi
mov dl, byte [ebx]
mov ebp, 3
mov ecx, 4
mov esi, eax
jmp 0x6a31032f
mov dl, byte [ebx]
cmp dl, 0x68
je 0x6a310be3
mov eax, esi
mov ebp, 1
mov ecx, 4
mov esi, eax
jmp 0x6a31032f
mov eax, dword [esp + 0x50]
mov edx, esi
or eax, 0x20
mov dword [esp + 0x50], eax
test al, 4
je 0x6a3107fe
mov eax, dword [edx]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [esp], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
add esi, 0xc
call fcn.6a30fbc0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, dword [esp + 0x50]
mov edx, esi
or eax, 0x20
mov dword [esp + 0x50], eax
test al, 4
je 0x6a310824
mov eax, dword [edx]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [esp], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
add esi, 0xc
call fcn.6a30fae0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, dword [esp + 0x50]
mov edx, esi
or eax, 0x20
mov dword [esp + 0x50], eax
test al, 4
je 0x6a31084e
mov eax, dword [edx]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [esp], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
add esi, 0xc
call fcn.6a30fa20
mov dl, byte [ebx]
jmp 0x6a3102f0
sub ebp, 2
mov eax, esi
mov dword [esp + 0x58], 0xffffffff
cmp ebp, 1
jbe 0x6a310870
mov eax, dword [eax]
mov edx, 1
mov byte [esp + 0x90], al
lea ecx, [esp + 0x4c]
lea eax, [esp + 0x90]
add esi, 4
call fcn.6a30f070
mov dl, byte [ebx]
jmp 0x6a3102f0
mov ecx, dword [esp + 0x50]
mov eax, esi
or cl, 0x80
cmp ebp, 3
mov dword [esp + 0x50], ecx
je 0x6a310bf9
cmp ebp, 2
je 0x6a310b34
mov eax, dword [eax]
add esi, 4
mov edx, eax
mov dword [esp + 0x90], eax
sar edx, 0x1f
cmp ebp, 1
mov dword [esp + 0x94], edx
je 0x6a310cd5
cmp ebp, 4
je 0x6a310d5c
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x4c]
mov eax, dword [esp + 0x90]
call fcn.6a30f1b0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov edx, dword [esp + 0x50]
mov eax, esi
or edx, 0x20
mov dword [esp + 0x50], edx
test dl, 4
je 0x6a3108af
fld xword [eax]
add esi, 0xc
fld st(0)
fstp xword [esp + 0x80]
fxam
wait
fnstsw ax
and eax, 0x4500
cmp eax, 0x100
je 0x6a310c34
mov ecx, dword [esp + 0x88]
mov edi, ecx
and edi, 0x8000
jne 0x6a310a90
fxam
wait
fnstsw ax
fstp st(0)
and eax, 0x4500
cmp eax, 0x500
je 0x6a310c85
and ecx, 0x7fff
test cx, cx
mov word [esp + 0x88], cx
je 0x6a310aa0
sub ecx, 0x3fff
mov word [esp + 0x88], cx
lea eax, [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
call fcn.6a30fd60
mov dl, byte [ebx]
jmp 0x6a3102f0
mov edx, esi
cmp ebp, 3
je 0x6a310b94
cmp ebp, 2
je 0x6a310b64
mov ecx, dword [edx]
add esi, 4
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], 0
cmp ebp, 1
je 0x6a310cb1
cmp ebp, 4
je 0x6a310d3c
cmp eax, 0x75
je 0x6a310679
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0x94]
mov dword [esp], edx
mov edx, dword [esp + 0x90]
call fcn.6a30f3c0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov dl, byte [ebx]
cmp dl, 0x36
je 0x6a310bc1
cmp dl, 0x33
je 0x6a310ae9
mov eax, esi
mov ebp, 2
mov ecx, 4
mov esi, eax
jmp 0x6a31032f
mov eax, dword [esp + 0x50]
mov edx, esi
test al, 4
jne 0x6a310545
fld qword [edx]
lea eax, [esp + 0x4c]
add esi, 8
fstp xword [esp]
call fcn.6a30fbc0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, dword [esp + 0x50]
mov edx, esi
test al, 4
jne 0x6a310585
fld qword [edx]
lea eax, [esp + 0x4c]
add esi, 8
fstp xword [esp]
call fcn.6a30fae0
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, dword [esp + 0x50]
mov edx, esi
test al, 4
jne 0x6a3105c5
fld qword [edx]
lea eax, [esp + 0x4c]
add esi, 8
fstp xword [esp]
call fcn.6a30fa20
mov dl, byte [ebx]
jmp 0x6a3102f0
mov dword [esp + 0x58], 0xffffffff
mov eax, esi
mov eax, dword [eax]
mov edx, 1
mov word [esp + 0x9e], ax
lea ecx, [esp + 0x4c]
lea eax, [esp + 0x9e]
add esi, 4
call fcn.6a30ef60
mov dl, byte [ebx]
jmp 0x6a3102f0
mov edx, dword [esp + 0x50]
mov eax, esi
test dl, 4
jne 0x6a3106ad
fld qword [eax]
add esi, 8
fst qword [esp + 0x70]
fxam
wait
fnstsw ax
and eax, 0x4500
cmp eax, 0x100
je 0x6a310c38
mov bp, word [esp + 0x76]
mov edi, ebp
and edi, 0x8000
je 0x6a3108e3
or dl, 0x80
mov dword [esp + 0x50], edx
fstp qword [esp]
call fcn.6a312ae0
cmp eax, 0x500
je 0x6a310c85
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x74], edx
shr bp, 4
mov dword [esp + 0x70], eax
mov ax, word [esp + 0x76]
and ebp, 0x7ff
and eax, 0xfff
mov word [esp + 0x78], bp
test bp, bp
mov word [esp + 0x76], ax
jne 0x6a310c52
mov eax, dword [esp + 0x74]
or eax, dword [esp + 0x70]
je 0x6a310945
mov word [esp + 0x78], 0xfc01
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
call fcn.6a30fd60
mov dl, byte [ebx]
jmp 0x6a3102f0
test ecx, ecx
jne case.0x6a3103a6.1
mov eax, dword [esp + 0x50]
or ah, 2
mov dword [esp + 0x50], eax
mov eax, esi
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
cmp ecx, 1
jbe 0x6a310c14
mov eax, esi
mov dl, byte [ebx]
mov ecx, 4
mov esi, eax
jmp 0x6a31032f
test ecx, ecx
jne 0x6a310437
mov eax, dword [esp + 0x50]
or ah, 4
mov dword [esp + 0x50], eax
mov eax, esi
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
test ecx, ecx
jne 0x6a310437
mov edx, dword [esp + 0x50]
mov eax, esi
or dh, 1
mov esi, eax
mov dword [esp + 0x50], edx
mov dl, byte [ebx]
jmp 0x6a31032f
mov eax, dword [esp + 0x38]
test eax, eax
je 0x6a31099f
test ecx, ecx
sete byte [esp + 0x2c]
cmp ecx, 2
je 0x6a310b10
cmp byte [esp + 0x2c], 0
jne 0x6a310b10
mov eax, esi
mov dl, byte [ebx]
mov ecx, 4
mov dword [esp + 0x38], 0
mov esi, eax
jmp 0x6a31032f
lea edx, [esp + 0x4c]
call fcn.6a30ef00
mov dl, byte [ebx]
jmp 0x6a3102f0
test ecx, ecx
jne 0x6a310437
mov eax, dword [esp + 0x50]
or ah, 8
mov dword [esp + 0x50], eax
mov eax, esi
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
test ecx, ecx
jne 0x6a310437
mov edx, dword [esp + 0x50]
mov eax, esi
or edx, 0x40
mov esi, eax
mov dword [esp + 0x50], edx
mov dl, byte [ebx]
jmp 0x6a31032f
cmp ecx, 2
jne 0x6a31040c
mov cl, 3
jmp 0x6a31040c
or dl, 0x80
mov dword [esp + 0x50], edx
jmp 0x6a3106e5
mov eax, dword [esp + 0x84]
or eax, dword [esp + 0x80]
je 0x6a310721
jmp 0x6a310713
mov edi, dword [esi]
test edi, edi
je 0x6a310d7c
mov dword [esp], edi
call sub.msvcrt.dll_wcslen
lea ecx, [esp + 0x4c]
mov edx, eax
mov eax, edi
add esi, 4
call fcn.6a30ef60
mov dl, byte [ebx]
jmp 0x6a3102f0
cmp byte [ebx + 1], 0x32
jne 0x6a3107db
add ebx, 2
mov eax, esi
mov ebp, 2
mov ecx, 4
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
mov edx, dword [esp + 0x38]
lea eax, [esi + 4]
mov esi, dword [esi]
mov dword [edx], esi
test esi, esi
js 0x6a310cf5
mov dl, byte [ebx]
mov esi, eax
mov dword [esp + 0x38], 0
jmp 0x6a31032f
mov eax, dword [eax]
add esi, 4
mov ecx, eax
mov dword [esp + 0x90], eax
sar ecx, 0x1f
mov dword [esp + 0x94], ecx
jmp 0x6a310679
mov eax, dword [eax]
mov edx, dword [esp + 0x64]
add esi, 4
mov word [eax], dx
mov dl, byte [ebx]
jmp 0x6a3102f0
mov ecx, dword [edx]
add esi, 4
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], 0
jmp 0x6a31079d
mov edx, dword [esp + 0x38]
sub eax, 0x30
mov dword [edx], eax
mov eax, esi
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
mov ecx, dword [edx + 4]
mov edx, dword [edx]
add esi, 8
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
jmp 0x6a31079d
mov eax, dword [eax]
mov edx, dword [esp + 0x64]
add esi, 4
mov byte [eax], dl
mov dl, byte [ebx]
jmp 0x6a3102f0
cmp byte [ebx + 1], 0x34
jne 0x6a3107db
add ebx, 2
mov eax, esi
mov ebp, 3
mov ecx, 4
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
inc ebx
mov eax, esi
mov ebp, 4
mov ecx, 4
mov dl, byte [ebx]
mov esi, eax
jmp 0x6a31032f
mov edx, dword [eax + 4]
mov eax, dword [eax]
add esi, 8
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x6a310679
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], 0
mov eax, esi
mov dl, byte [ebx]
mov esi, eax
mov dword [esp + 0x38], ecx
mov ecx, 2
jmp 0x6a31032f
fstp st(0)
jmp 0x6a310c3a
fstp st(0)
mov edx, 0x6a316909
lea ecx, [esp + 0x4c]
xor ax, ax
call fcn.6a30f120
mov dl, byte [ebx]
jmp 0x6a3102f0
sub ebp, 0x3ff
cmp bp, 0xff83
mov word [esp + 0x78], bp
jl 0x6a310945
add eax, 0x1000
mov word [esp + 0x76], ax
jmp 0x6a310945
mov edx, 6
mov edi, str._null_
jmp 0x6a310462
mov edx, 0x6a31690d
lea ecx, [esp + 0x4c]
mov eax, edi
call fcn.6a30f120
mov dl, byte [ebx]
jmp 0x6a3102f0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x58], 8
mov dword [esp + 0x50], eax
jmp 0x6a31048c
mov edx, dword [esp + 0x90]
mov dword [esp + 0x94], 0
and edx, 0xffff
mov dword [esp + 0x90], edx
jmp 0x6a31079d
movsx eax, word [esp + 0x90]
mov ecx, eax
mov dword [esp + 0x90], eax
sar ecx, 0x1f
mov dword [esp + 0x94], ecx
jmp 0x6a310679
cmp byte [esp + 0x2c], 0
je 0x6a310d86
mov edx, dword [esp + 0x50]
xor ecx, ecx
neg dword [esp + 0x54]
or dh, 4
mov esi, eax
mov dword [esp + 0x50], edx
mov dl, byte [ebx]
mov dword [esp + 0x38], 0
jmp 0x6a31032f
mov edx, dword [esp + 0x64]
mov eax, dword [eax]
mov ecx, edx
add esi, 4
sar ecx, 0x1f
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dl, byte [ebx]
jmp 0x6a3102f0
xor edx, edx
mov dword [esp + 0x94], 0
mov dl, byte [esp + 0x90]
mov dword [esp + 0x90], edx
jmp 0x6a31079d
movsx eax, byte [esp + 0x90]
mov edx, eax
mov dword [esp + 0x90], eax
sar edx, 0x1f
mov dword [esp + 0x94], edx
jmp 0x6a310679
mov edi, 0x6a3168f4
jmp 0x6a310aca
mov dword [esp + 0x58], 0xffffffff
jmp 0x6a310b23