Function at 0x4023aa
Capabilities:
Query environment variable
Terminate process

Disassembly:
push 0x41682d
jmp fcn.00401b2c
push 0x416856
jmp fcn.00401b2c
push 0x4169ba
jmp fcn.00401b2c
mov eax, esp
sub eax, 0x100
jb 0x401930
cmp eax, dword [0x416b44]
jb 0x401930
push ecx
push esi
mov esi, dword [0x416b78]
add esi, 0x10
cmp word [esi], 0x3b
jne 0x4023d7
add esi, 2
test byte [0x416cab], 0xf0
jne 0x402421
cmp byte [esi], 0x1a
jne 0x40241a
movzx edx, byte [esi + 1]
lea edx, [esi + edx + 2]
cmp word [edx], 0x31a
jne 0x40241a
mov ebx, 0x416cae
movzx eax, byte [edx + 2]
xlatb
ror eax, 8
mov al, byte [edx + 3]
xlatb
ror eax, 8
mov al, byte [edx + 4]
xlatb
ror eax, 0x10
cmp eax, 0x786966
je 0x402796
call fcn.00402a2f
jmp 0x402426
call fcn.00402b26
mov esi, dword [0x416b78]
add esi, 0x10
mov al, byte [0x416cab]
test al, 2
jne 0x4028b2
test al, 1
jne 0x402897
mov dword [0x416c00], esi
lodsb al, byte [esi]
movzx ecx, byte [esi]
inc esi
cmp al, 0x1a
jne 0x4025fe
cmp cl, 3
jb 0x402470
push edi
mov edi, 0x4127fe
call fcn.0040235d
pop edi
jb 0x402470
mov byte [edx - 2], 0x3b
jmp eax
xor ch, ch
call fcn.0040260c
jb 0x40248c
mov byte [ebx - 2], 0x3b
mov dword [0x416b90], 0
jmp 0x402cf5
mov dword [0x416b90], esi
add esi, ecx
lodsb al, byte [esi]
cmp al, 0x3a
je 0x40257d
cmp al, 0x1a
jne 0x4025fe
lodsb al, byte [esi]
cmp al, 3
jne 0x4024d1
mov ebx, 0x416cae
movzx eax, byte [esi]
xlatb
ror eax, 8
mov al, byte [esi + 1]
xlatb
ror eax, 8
mov al, byte [esi + 2]
xlatb
ror eax, 0x10
cmp eax, 0x757165
je 0x4027a1
mov al, 3
mov ch, 1
mov cl, al
call fcn.0040260c
jb 0x4025fe
push edx
push esi
mov esi, dword [0x416b90]
mov dword [0x416b94], esi
sub dword [0x416b94], 2
mov cl, byte [esi - 1]
mov ch, 2
call fcn.0040260c
jb 0x402552
mov ecx, dword [edx + 0xc]
add ecx, 3
lea ebx, [edi + ecx]
mov ecx, edi
sub ecx, dword [0x416b94]
lea esi, [edi - 1]
lea edi, [ebx - 1]
std
rep movsb byte es:[edi], byte [esi]
cld
mov edi, dword [0x416b94]
mov esi, dword [edx + 8]
mov ecx, dword [edx + 0xc]
add dword [0x416b90], ecx
add dword [0x416b90], 3
call fcn.00402aaf
mov al, 0x3a
stosb byte es:[edi], al
mov ax, 0x3b
stosw word es:[edi], ax
mov edi, ebx
pop esi
add esi, dword [edx + 0xc]
add esi, 3
pop edx
jmp 0x402cf5
mov edx, dword [0x416b90]
movzx eax, byte [edx - 1]
add edx, eax
push edi
lea esi, [edi - 1]
mov ecx, edi
sub ecx, edx
std
rep movsb byte es:[edi], byte [esi]
cld
pop edi
inc edi
mov al, 0x3a
mov byte [edx], al
inc al
mov byte [edx + 1], al
pop esi
pop edx
inc esi
jmp 0x402cf5
dec esi
sub esi, ecx
lea ebp, [esi - 2]
mov ch, 2
call fcn.0040260c
jae 0x402595
lea esi, [esi + ecx + 1]
jmp 0x402444
mov ebx, dword [edx + 8]
mov ecx, dword [edx + 0xc]
add ecx, ebx
cmp ebx, ecx
je 0x4025ba
cmp byte [ebx], 0x1a
jne 0x4025ba
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
cmp ebx, ecx
je 0x4025c4
cmp byte [ebx], 0x3a
jne 0x4025ba
inc ebx
jmp 0x40259d
push 0x402609
jmp 0x402a80
mov ecx, edi
sub ecx, esi
mov edi, dword [edx + 0xc]
add edi, ebp
push edi
lea eax, [edi + ecx]
push eax
cmp esi, edi
je 0x4025e8
jb 0x4025dc
rep movsb byte es:[edi], byte [esi]
jmp 0x4025e8
lea esi, [esi + ecx - 1]
lea edi, [edi + ecx - 1]
std
rep movsb byte es:[edi], byte [esi]
cld
mov ecx, dword [edx + 0xc]
mov edi, dword [esp + 4]
sub edi, ecx
mov esi, dword [edx + 8]
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
inc esi
jmp 0x402444
mov esi, dword [0x416c00]
call fcn.00402a38
pop esi
pop ecx
ret
add edx, 5
add esi, 2
push edx
mov ch, 3
jmp 0x4027b2
add esi, 3
push esi
call fcn.00402a38
mov esi, dword [0x416b90]
mov ch, 2
mov byte [esi - 2], 0x3b
mov cl, byte [esi - 1]
call fcn.004026a3
pop ebx
mov ecx, edi
dec ecx
sub ecx, ebx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ecx
jmp 0x402609
add esi, 2
lodsb al, byte [esi]
or al, al
je 0x402609
cmp al, 0x7b
jne 0x4019aa
or byte [0x416cab], 2
lodsb al, byte [esi]
cmp al, 0x1a
je 0x40291b
cmp al, 0x3b
je 0x40291b
cmp al, 0x22
je 0x402923
or al, al
je 0x402609
cmp al, 0x7d
jne 0x4028b2
mov al, byte [0x416cab]
and byte [0x416cab], 0xf0
test al, 8
jne 0x402e57
cmp byte [esi], 0
je 0x402609
mov ecx, edi
sub ecx, esi
mov edx, esi
lea esi, [esi + ecx - 1]
lea edi, [edi + 0x11]
mov ebx, edi
dec edi
std
rep movsb byte es:[edi], byte [esi]
cld
mov edi, edx
xor al, al
stosb byte es:[edi], al
mov esi, dword [0x416b78]
mov dword [0x416b78], edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
jmp 0x402426
movzx eax, byte [esi]
inc esi
add esi, eax
jmp 0x4028b2
lodsd eax, dword [esi]
add esi, eax
jmp 0x4028b2
push dword [0x416b5c]
push dword [0x416b8c]
mov dword [0x416b8c], 0
push dword [0x416be4]
push dword [edx + 4]
mov dword [edx + 4], 1
push edx
mov ebx, esi
mov esi, dword [edx + 8]
mov eax, dword [edx + 0xc]
mov dword [0x416b7c], eax
mov dword [0x416be4], 0
mov al, byte [esi]
or al, al
je 0x402e29
cmp al, 0x7b
je 0x402e29
inc esi
cmp al, 0x5b
jne 0x402d53
mov ebp, esi
inc esi
inc dword [0x416be4]
call fcn.00402d83
lodsb al, byte [esi]
cmp al, 0x2c
je 0x402d67
cmp al, 0x5d
je 0x402d6f
dec esi
jmp 0x402e29
cmp byte [ebx], 0x2c
jne 0x402d33
inc ebx
jmp 0x402d33
cmp byte [ebx], 0x2c
jne 0x402e29
inc ebx
inc dword [0x416be4]
mov esi, ebp
jmp 0x402d33
cmp byte [ebx], 0
jne 0x401996
mov eax, dword [esp + 4]
dec eax
call fcn.0040322a
pop edx
pop dword [edx + 4]
pop dword [0x416be4]
pop dword [0x416b8c]
pop dword [0x416b5c]
jmp 0x402609
push edi
push dword [0x416b78]
push esi
mov eax, dword [0x416bec]
mov dword [0x416b78], eax
mov dword [0x416b7c], eax
mov esi, dword [0x416b98]
cmp byte [0x416c94], 0x10
jae 0x403097
cmp byte [0x416c94], 0
jne 0x402fa1
call fcn.00402f76
cmp eax, 0
jl 0x401a40
push dword [0x416b5c]
push dword [0x416b8c]
mov dword [0x416b8c], 0
push dword [0x416be4]
mov dword [0x416b90], 0
mov dword [0x416be4], eax
lodsb al, byte [esi]
or al, al
je 0x402f1b
cmp al, 0x7b
je 0x402f1b
cmp al, 0x1a
jne 0x401996
lodsb al, byte [esi]
movzx ecx, al
xor eax, eax
call fcn.004037a5
add esi, ecx
xor eax, eax
mov dword [edx + 0xc], eax
inc eax
mov dword [edx + 8], eax
lodsb al, byte [esi]
cmp al, 0x3a
jne 0x402f0c
push edx
call fcn.00402f76
mov edx, eax
add edx, dword [0x416be4]
jo 0x401a40
pop edx
mov dword [edx + 8], eax
lodsb al, byte [esi]
cmp al, 0x2c
jne 0x402f1b
lodsb al, byte [esi]
cmp al, 0x1a
jne 0x401996
jmp 0x402ed8
dec esi
cmp dword [0x416be4], 0
je 0x402f2c
xor eax, eax
call fcn.0040322a
pop dword [0x416be4]
pop dword [0x416b8c]
pop dword [0x416b5c]
pop ebx
pop esi
pop edx
cmp byte [ebx], 0
je 0x402609
mov dword [0x416b78], edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
test byte [0x416cab], 0xf
je 0x402f66
mov ax, 0x3b
stosw word es:[edi], ax
mov esi, ebx
sub edx, ebx
mov ecx, edx
call fcn.00402aaf
jmp 0x402426
cmp byte [esi], 0x1a
jne 0x401996
movzx eax, byte [esi + 1]
lea esi, [esi + eax + 2]
lodsb al, byte [esi]
cmp byte [0x416c94], 1
ja 0x402fcb
cmp al, 0x2a
jne 0x402fc1
lodsb al, byte [esi]
cmp al, 0x2c
jne 0x401996
jmp 0x402fe5
cmp al, 0x2c
jne 0x401996
mov al, byte [esi]
or al, al
je 0x402f3e
cmp al, 0x7b
je 0x402f3e
xor eax, eax
push dword [0x416b5c]
push dword [0x416b8c]
mov dword [0x416b8c], eax
push dword [0x416be4]
mov dword [0x416be4], eax
mov dword [0x416b90], eax
mov ebx, esi
cmp byte [0x416c94], 1
ja 0x403043
mov edx, dword [0x416b9c]
mov al, byte [edx]
push eax
mov byte [edx], 0
inc dword [0x416be4]
mov esi, dword [0x416b98]
inc esi
call fcn.00402d83
cmp byte [ebx], 0x2c
jne 0x403039
inc ebx
jmp 0x40301f
mov esi, ebx
pop eax
mov byte [esi], al
jmp 0x402f25
mov esi, dword [0x416b98]
inc esi
lodsb al, byte [esi]
movzx ecx, al
inc dword [0x416be4]
mov eax, dword [0x416be4]
call fcn.004037a5
mov dword [edx + 0xc], ebx
cmp byte [ebx], 0x1a
je 0x40307a
cmp byte [ebx], 0x22
je 0x403072
mov eax, 1
jmp 0x403081
mov eax, dword [ebx + 1]
add eax, 5
jmp 0x403081
movzx eax, byte [ebx + 1]
add eax, 2
mov dword [edx + 8], eax
add ebx, eax
cmp byte [ebx], 0
je 0x403090
cmp byte [ebx], 0x7b
jne 0x403043
mov esi, ebx
jmp 0x402f25
mov ebx, esi
call fcn.004029bf
call fcn.0040316a
mov edx, edi
mov al, byte [ebx]
cmp al, 0x1a
je 0x4030c4
cmp al, 0x2c
jne 0x402f3e
cmp esi, dword [0x416b9c]
je 0x4031d6
jmp 0x402f3e
add edx, 0xc
cmp edx, dword [0x416b38]
ja 0x401926
mov dword [edx - 0xc], ebx
mov dword [edx - 8], esi
call fcn.00403140
jb 0x403116
mov dword [edx - 4], esi
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
cmp byte [ebx], 0x1a
je 0x4030c4
call fcn.0040316a
cmp esi, dword [0x416b9c]
je 0x4031cd
cmp byte [ebx], 0x1a
je 0x4030c4
mov ebx, dword [edx - 0xc]
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
mov esi, dword [edx - 4]
jmp 0x403134
sub edx, 0xc
cmp edx, edi
je 0x402f3e
mov ebx, dword [edx - 0xc]
movzx eax, byte [ebx + 1]
lea ebx, [ebx + eax + 2]
cmp byte [ebx], 0x1a
je 0x403116
mov esi, dword [edx - 4]
call fcn.00403140
jb 0x403116
mov dword [edx - 4], esi
jmp 0x4030f0
cmp byte [ebx], 0x2c
jne 0x402f3e
xor eax, eax
push dword [0x416b5c]
push dword [0x416b8c]
mov dword [0x416b8c], eax
push dword [0x416be4]
mov dword [0x416be4], eax
mov dword [0x416b90], eax
push esi
push edi
push edx
cmp edi, dword [esp]
je 0x403222
mov esi, dword [edi]
inc esi
lodsb al, byte [esi]
movzx ecx, al
xor eax, eax
call fcn.004037a5
mov eax, dword [edi + 4]
mov dword [edx + 0xc], eax
mov ecx, dword [edi + 8]
sub ecx, eax
mov dword [edx + 8], ecx
add edi, 0xc
jmp 0x4031fc
pop edx
pop edi
pop esi
jmp 0x402f25