Function at 0x411b00
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [ebp + 0xc]
and dword [ebp + 8], 0x3000
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x70], 0xffffffff
mov dword [ebp - 0x6c], 0xffffffff
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x68], 0xfffffffd
mov word [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], eax
mov dword [esp], str.PRINTF_EXPONENT_DIGITS
call sub.msvcrt.dll_getenv
test eax, eax
je 0x411b6a
movsx eax, byte [eax]
mov edx, 2
sub eax, 0x30
cmp eax, 2
jbe 0x411b6f
mov edx, 3
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
lea esi, [esi]
lea edi, [edi]
movsx ecx, byte [ebx]
inc ebx
test ecx, ecx
je 0x411c5c
lea esi, [esi]
cmp ecx, 0x25
jne 0x411c43
mov dword [ebp - 0x90], ebx
xor eax, eax
xor esi, esi
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x40]
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0xffffffff
movzx eax, byte [ebx]
test al, al
je 0x411c50
movsx ecx, al
inc ebx
lea eax, [ecx - 0x20]
cmp eax, 0x5a
ja case.0x411bff.33
jmp dword [eax*4 + 0x417cf4]
cmp esi, 3
setbe al
xor edx, edx
cmp ecx, 0x39
setle dl
test edx, eax
je 0x41225c
cmp ecx, 0x2f
jle 0x41225c
test esi, esi
jne 0x411c70
mov esi, 1
test edi, edi
je 0x411bec
mov eax, dword [edi]
test eax, eax
js 0x411c7c
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [edi], eax
jmp 0x411bec
mov eax, ecx
lea edx, [ebp - 0x48]
call fcn.004104f0
movzx eax, byte [ebx]
movsx ecx, al
inc ebx
test ecx, ecx
jne 0x411bc0
mov eax, dword [ebp - 0x30]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 2
jne 0x411c2e
mov esi, 3
jmp 0x411c2e
lea eax, [ecx - 0x30]
mov dword [edi], eax
jmp 0x411bec
mov eax, 2
mov dword [ebp - 0x8c], eax
mov esi, 4
jmp 0x411bec
mov eax, 2
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
sub eax, 2
cmp eax, 1
ja 0x4121a9
mov eax, dword [ebp + 0x18]
lea edi, [ebp - 0x48]
add dword [ebp + 0x18], 4
mov esi, dword [eax]
test esi, esi
je 0x41232e
mov dword [esp], esi
call sub.msvcrt.dll_wcslen
mov dword [esp], edi
mov edx, eax
mov eax, esi
call fcn.00410600
jmp 0x411bb0
mov eax, 2
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x3c], 0xffffffff
mov eax, dword [ebp - 0x8c]
sub eax, 2
cmp eax, 1
jbe 0x412184
mov eax, dword [ebp + 0x18]
mov edx, 1
add dword [ebp + 0x18], 4
mov eax, dword [eax]
mov byte [ebp - 0x88], al
lea eax, [ebp - 0x48]
mov dword [esp], eax
lea eax, [ebp - 0x88]
call fcn.00410540
jmp 0x411bb0
or dword [ebp - 0x44], 4
mov esi, 4
jmp 0x411bec
movzx eax, byte [ebx]
mov edx, 1
mov dword [ebp - 0x8c], edx
cmp al, 0x68
je 0x4121d6
mov esi, 4
jmp 0x411bef
mov eax, dword [ebp - 0x44]
or eax, 0x20
test al, 4
mov dword [ebp - 0x44], eax
jne 0x411ff3
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 8
fld qword [eax]
fstp xword [esp]
call fcn.00411350
jmp 0x411bb0
mov eax, dword [ebp - 0x44]
or eax, 0x20
test al, 4
mov dword [ebp - 0x44], eax
jne 0x412029
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 8
fld qword [eax]
fstp xword [esp]
call fcn.004111a0
jmp 0x411bb0
mov eax, dword [ebp - 0x44]
or eax, 0x20
test al, 4
mov dword [ebp - 0x44], eax
jne 0x41205f
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 8
fld qword [eax]
fstp xword [esp]
call fcn.00411280
jmp 0x411bb0
mov eax, dword [ebp - 0x44]
or eax, 0x20
test al, 4
mov dword [ebp - 0x44], eax
jne 0x412095
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 8
fld qword [eax]
fstp xword [esp]
call fcn.004114e0
jmp 0x411bb0
cmp dword [ebp - 0x8c], 3
je 0x4122bb
cmp dword [ebp - 0x8c], 2
je 0x4122d8
mov eax, dword [ebp + 0x18]
xor edi, edi
add dword [ebp + 0x18], 4
cmp dword [ebp - 0x8c], 1
mov edx, dword [eax]
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], edx
je 0x412362
cmp dword [ebp - 0x8c], 4
je 0x412219
cmp ecx, 0x75
je 0x411fa4
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 0x84]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x88]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, ecx
call fcn.004109a0
jmp 0x411bb0
test esi, esi
jne 0x411ea3
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp + 8]
je 0x41234e
mov eax, dword [ebp + 0x18]
xor ecx, ecx
add dword [ebp + 0x18], 4
mov edx, dword [eax]
lea eax, [ebp - 0x48]
mov dword [esp + 8], eax
mov eax, 0x78
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x84], ecx
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.004109a0
jmp 0x411bb0
cmp dword [ebp - 0x8c], 4
je 0x41228b
cmp dword [ebp - 0x8c], 1
je 0x41230c
cmp dword [ebp - 0x8c], 2
je 0x411f07
cmp dword [ebp - 0x8c], 3
je 0x4121e1
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x411bb0
movzx eax, byte [ebx]
mov edx, 2
mov dword [ebp - 0x8c], edx
cmp al, 0x6c
jne 0x411d57
inc ebx
mov eax, 3
mov dword [ebp - 0x8c], eax
movzx eax, byte [ebx]
mov esi, 4
jmp 0x411bef
mov eax, 3
jmp 0x411c8b
or dword [ebp - 0x44], 0x80
cmp dword [ebp - 0x8c], 3
je 0x41229e
cmp dword [ebp - 0x8c], 2
je 0x412320
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov eax, dword [eax]
cdq
cmp dword [ebp - 0x8c], 1
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
je 0x412342
cmp dword [ebp - 0x8c], 4
je 0x4121fc
mov eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x48]
mov edx, dword [ebp - 0x84]
mov dword [esp], ecx
call fcn.00410720
jmp 0x411bb0
movzx eax, byte [ebx]
cmp al, 0x36
je 0x412274
cmp al, 0x33
je 0x4122ec
mov ecx, 2
mov esi, 4
mov dword [ebp - 0x8c], ecx
jmp 0x411bef
mov eax, dword [ebp - 0x44]
test al, 4
je 0x411d72
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 0xc
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00411350
jmp 0x411bb0
mov eax, dword [ebp - 0x44]
test al, 4
je 0x411da0
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 0xc
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004111a0
jmp 0x411bb0
mov eax, dword [ebp - 0x44]
test al, 4
je 0x411dce
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 0xc
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00411280
jmp 0x411bb0
mov eax, dword [ebp - 0x44]
test al, 4
je 0x411dfc
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 0xc
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004114e0
jmp 0x411bb0
test esi, esi
jne case.0x411bff.33
or dword [ebp - 0x44], 0x200
jmp 0x411bec
cmp esi, 1
ja 0x411c91
mov dword [ebp - 0x3c], 0
lea edi, [ebp - 0x3c]
mov esi, 2
jmp 0x411bec
test esi, esi
jne 0x411bec
or dword [ebp - 0x44], 0x400
jmp 0x411bec
test esi, esi
jne 0x411bec
or dword [ebp - 0x44], 0x100
jmp 0x411bec
test edi, edi
je 0x412250
test esi, esi
sete al
cmp esi, 2
sete dl
or eax, edx
test al, 1
je 0x412250
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov eax, dword [eax]
test eax, eax
mov dword [edi], eax
js 0x412233
xor edi, edi
jmp 0x411bec
lea edx, [ebp - 0x48]
mov eax, ecx
call fcn.004104f0
jmp 0x411bb0
test esi, esi
jne 0x411bec
or dword [ebp - 0x44], 0x800
jmp 0x411bec
test esi, esi
jne 0x411bec
or dword [ebp - 0x44], 0x40
jmp 0x411bec
mov eax, dword [ebp + 0x18]
lea edx, [ebp - 0x48]
add dword [ebp + 0x18], 4
mov eax, dword [eax]
mov dword [esp], edx
mov edx, 1
mov word [ebp - 0x7a], ax
lea eax, [ebp - 0x7a]
call fcn.00410600
jmp 0x411bb0
mov eax, dword [ebp + 0x18]
lea edi, [ebp - 0x48]
add dword [ebp + 0x18], 4
mov esi, dword [eax]
test esi, esi
je 0x412338
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov dword [esp], edi
mov edx, eax
mov eax, esi
call fcn.00410540
jmp 0x411bb0
inc ebx
mov eax, 4
jmp 0x411f36
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x30]
mov dword [edx], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [edx + 4], ecx
jmp 0x411bb0
movsx eax, byte [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0x84], ecx
jmp 0x411fa4
movzx eax, byte [ebp - 0x88]
mov dword [ebp - 0x88], eax
xor esi, esi
mov dword [ebp - 0x84], esi
jmp 0x411e64
test esi, esi
jne 0x41236e
or dword [ebp - 0x44], 0x400
xor edi, edi
neg dword [ebp - 0x40]
jmp 0x411bec
mov esi, 4
xor edi, edi
jmp 0x411bec
mov ebx, dword [ebp - 0x90]
lea edx, [ebp - 0x48]
mov eax, 0x25
call fcn.004104f0
jmp 0x411bb0
cmp byte [ebx + 1], 0x34
jne 0x411fd3
mov eax, 3
add ebx, 2
jmp 0x411f36
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x30]
mov byte [edx], al
jmp 0x411bb0
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 8
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], eax
jmp 0x411fa4
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 8
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], eax
jmp 0x411e64
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov edx, dword [eax]
mov dword [ebp - 0x88], edx
jmp 0x412226
cmp byte [ebx + 1], 0x32
jne 0x411fd3
mov esi, 2
add ebx, 2
mov dword [ebp - 0x8c], esi
movzx eax, byte [ebx]
jmp 0x411f3f
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov edx, dword [eax]
mov eax, dword [ebp - 0x30]
mov word [edx], ax
jmp 0x411bb0
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov eax, dword [eax]
jmp 0x412203
mov esi, 0x417cdc
jmp 0x411ccc
mov esi, str._null_
jmp 0x4121bd
movsx eax, word [ebp - 0x88]
jmp 0x412203
mov dword [ebp - 0x3c], 8
or eax, 0x200
mov dword [ebp - 0x44], eax
jmp 0x411ea3
movzx eax, word [ebp - 0x88]
jmp 0x412220
mov dword [ebp - 0x3c], 0xffffffff
xor edi, edi
jmp 0x411bec