Function at 0x4054cc
Capabilities:
Query environment variable
Terminate process

Disassembly:
push 0x41687d
jmp fcn.00401b2c
push 0x416a40
jmp fcn.00401b2c
mov eax, dword [0x416bf4]
sub eax, 0x100
cmp edi, eax
ja 0x401926
lodsb al, byte [esi]
cmp al, 1
je 0x4057bf
jb 0x4057f5
cmp al, 3
jb 0x405595
je 0x4056a4
cmp al, 0xf
je 0x40551c
cmp al, 0x13
je 0x405511
cmp al, 0x10
jne 0x4019be
lodsb al, byte [esi]
jmp 0x40b5e9
lodsb al, byte [esi]
mov byte [0x416ca9], al
jmp 0x4057f3
lodsd eax, dword [esi]
mov dword [0x416b78], eax
mov byte [0x416cac], 0
cmp dword [0x416b50], 0
je fcn.00405587
mov ebx, dword [0x416bf4]
mov dword [ebx - 4], 1
mov dword [ebx - 8], 0x1c
sub ebx, 0x24
cmp ebx, edi
jbe 0x401926
mov dword [0x416bf4], ebx
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov eax, dword [0x416bc4]
mov edx, dword [0x416bc8]
mov ecx, dword [0x416bcc]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], ecx
mov edx, dword [0x416bd0]
mov eax, dword [0x416ca8]
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x18], eax
lodsd eax, dword [esi]
cmp eax, 0xf
jb 0x401acc
je 0x401ae1
mov ebx, eax
lodsb al, byte [esi]
mov cl, al
mov eax, edi
xor edx, edx
sub eax, dword [0x416bc4]
sbb edx, dword [0x416bc8]
mov ch, byte [0x416ca8]
cmp byte [0x416caa], 0
jne 0x4055e9
or byte [ebx + 9], 1
xchg dword [ebx], eax
xchg dword [ebx + 4], edx
sub eax, dword [ebx]
sbb edx, dword [ebx + 4]
mov dword [0x416c2c], eax
mov dword [0x416c30], edx
or eax, edx
setne ah
jmp 0x4055ff
and byte [ebx + 9], 0xfe
cmp eax, dword [ebx]
mov dword [ebx], eax
setne ah
cmp edx, dword [ebx + 4]
mov dword [ebx + 4], edx
setne al
or ah, al
cmp cl, byte [ebx + 0xa]
mov byte [ebx + 0xa], cl
setne al
or ah, al
cmp ch, byte [ebx + 0xb]
mov byte [ebx + 0xb], ch
setne al
or ah, al
mov edx, dword [0x416bcc]
cmp edx, dword [ebx + 0xc]
mov dword [ebx + 0xc], edx
setne al
or ah, al
or ch, ch
je 0x40563b
mov edx, dword [0x416bd0]
cmp edx, dword [ebx + 0x14]
mov dword [ebx + 0x14], edx
setne al
or ah, al
mov cx, word [0x416b56]
xchg word [ebx + 0x10], cx
mov edx, dword [0x416b78]
mov dword [ebx + 0x1c], edx
and byte [ebx + 8], 0xfd
test byte [ebx + 8], 1
je 0x40569b
cmp cx, word [ebx + 0x10]
je 0x401ae8
inc cx
sub cx, word [ebx + 0x10]
setne al
or ah, al
je fcn.00405587
test byte [ebx + 8], 8
je fcn.00405587
mov cx, word [0x416b56]
cmp cx, word [ebx + 0x12]
jne fcn.00405587
or byte [0x416ca6], 0xff
jmp fcn.00405587
or byte [ebx + 8], 1
jmp fcn.00405587
lodsd eax, dword [esi]
inc esi
cmp eax, 0xf
jb 0x401acc
je 0x401ae1
mov edx, dword [eax + 8]
push edx
cmp word [0x416b56], 0
je 0x4056db
test dl, 4
jne 0x4056db
mov cx, word [0x416b56]
cmp cx, word [eax + 0x10]
je 0x4056db
and dl, 0xfe
mov byte [eax + 8], dl
push eax
mov al, byte [esi - 1]
push eax
call fcn.00407af3
pop ebx
mov ch, bl
pop ebx
pop dword [ebx + 8]
cmp ebx, 0xf
jb 0x401acc
je 0x401ae1
xor cl, cl
mov ch, byte [0x416ca1]
cmp ch, 3
je 0x401acc
and byte [ebx + 9], 0xfe
cmp eax, dword [ebx]
mov dword [ebx], eax
setne ah
cmp edx, dword [ebx + 4]
mov dword [ebx + 4], edx
setne al
or ah, al
cmp cl, byte [ebx + 0xa]
mov byte [ebx + 0xa], cl
setne al
or ah, al
cmp ch, byte [ebx + 0xb]
mov byte [ebx + 0xb], ch
setne al
or ah, al
xor edx, edx
cmp edx, dword [ebx + 0xc]
mov dword [ebx + 0xc], edx
setne al
or ah, al
or ch, ch
je 0x40575a
mov edx, dword [0x416c34]
cmp edx, dword [ebx + 0x14]
mov dword [ebx + 0x14], edx
setne al
or ah, al
mov cx, word [0x416b56]
xchg word [ebx + 0x10], cx
mov edx, dword [0x416b78]
mov dword [ebx + 0x1c], edx
test byte [ebx + 8], 1
je 0x4057b9
cmp cx, word [ebx + 0x10]
jne 0x40578a
test byte [ebx + 8], 2
je 0x401ae8
or byte [ebx + 8], 4
jmp 0x4057e5
inc cx
sub cx, word [ebx + 0x10]
setne al
or ah, al
je 0x4057e5
test byte [ebx + 8], 4
jne 0x4057e5
test byte [ebx + 8], 8
je 0x4057e5
mov cx, word [0x416b56]
cmp cx, word [ebx + 0x12]
jne 0x4057e5
or byte [0x416ca6], 0xff
jmp 0x4057e5
or byte [ebx + 8], 3
jmp 0x4057e5
mov dword [0x416c8c], 0
mov dword [0x416c90], 0
call 0x4057d8
movzx ebx, word [esi]
mov al, byte [esi + 2]
add esi, 3
add dword [esp], ebx
ret
mov al, byte [esi]
cmp al, 0xf
je 0x4057f3
or al, al
jne 0x401b04
dec esi
stc
ret
mov ah, al
shr ah, 4
cmp ah, 6
jne 0x4019be
and al, 0xf
mov byte [0x416c98], al
call fcn.00410e3a
or byte [0x416cac], 0xff
jmp fcn.00405587