Function at 0x61522b90
Capabilities:
Encode data using xor
Query environment variable

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
mov edi, 0x6589f551
push esi
mov esi, 0xd8f20c5b
push ebx
push ecx
sub esp, 0xc8
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef600]
test al, al
je 0x61524028
mov dword [0x615f1b28], esi
mov dword [0x615f1b2c], edi
mov byte [0x615f1b30], 0x5b
mov dword [esp], 0x615f1b28
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef528]
test al, al
je 0x61523fd8
mov dword [0x615f1978], esi
mov dword [0x615f197c], edi
mov byte [0x615f1980], 0x5b
mov dword [esp], 0x615f1978
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef570]
test al, al
je 0x61523f88
mov dword [0x615f1a08], esi
mov dword [0x615f1a0c], edi
mov byte [0x615f1a10], 0x5b
mov dword [esp], 0x615f1a08
call fcn.6152b7e0
mov dword [ebp - 0x48], 0xa1b0d6ea
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef598]
test al, al
je 0x61523f38
mov dword [0x615f1a58], esi
mov dword [0x615f1a5c], edi
mov byte [0x615f1a60], 0x5b
mov dword [esp], 0x615f1a58
call sub.msvcrt.dll_getenv
test eax, eax
je 0x61522ca1
lea eax, [ebp - 0x48]
call eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5d8]
test al, al
je 0x61523ee8
mov dword [0x615f1ad8], esi
mov dword [0x615f1adc], edi
mov byte [0x615f1ae0], 0x5b
mov dword [esp], 0x615f1ad8
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5e0]
test al, al
je 0x61523e98
mov dword [0x615f1ae8], esi
mov dword [0x615f1aec], edi
mov byte [0x615f1af0], 0x5b
mov dword [esp], 0x615f1ae8
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5e8]
test al, al
je 0x61523e48
mov dword [0x615f1af8], esi
mov dword [0x615f1afc], edi
mov byte [0x615f1b00], 0x5b
mov dword [esp], 0x615f1af8
call fcn.6152b7e0
mov dword [ebp - 0x48], 0xb5c0deee
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5f0]
test al, al
je 0x61523df8
mov dword [0x615f1b08], esi
mov dword [0x615f1b0c], edi
mov byte [0x615f1b10], 0x5b
mov dword [esp], 0x615f1b08
call sub.msvcrt.dll_getenv
test eax, eax
je 0x61522d91
lea eax, [ebp - 0x48]
call eax
vmovdqa xmm0, xmmword [str.DzfacvtXvws_gnT]
mov eax, 0x424f
mov byte [ebp - 0x26], 0
mov word [ebp - 0x28], ax
vmovdqa xmmword [ebp - 0x38], xmm0
call sub.msvcrt.dll_rand
mov edx, 0x21217d75
mov byte [ebp - 0x3c], 0
vmovdqa xmm0, xmmword [0x615f44f0]
vpxor xmm0, xmm0, xmmword [ebp - 0x38]
mov eax, 0x617c6867
mov dword [ebp - 0x44], edx
xor word [ebp - 0x28], 0x2322
vmovdqa xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], 0x7b7a713a
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x47]
movzx ecx, byte [ebp - 0x48]
movzx ebx, byte [ebp - 0x46]
movzx edx, byte [ebp - 0x45]
xor eax, 0xd
xor ecx, 0xc
xor dword [ebp - 0x40], 0x17161514
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x44]
xor ebx, 0xe
xor edx, 0xf
mov byte [ebp - 0xa0], cl
movzx ecx, bl
movzx ebx, byte [ebp - 0x42]
movzx edx, dl
xor eax, 0x10
shl edx, 8
mov byte [ebp - 0xa8], al
movzx eax, byte [ebp - 0x43]
xor ebx, 0x12
or edx, ecx
movzx ebx, bl
movzx ecx, byte [ebp - 0xa4]
shl edx, 8
xor eax, 0x11
mov byte [ebp - 0xac], al
movzx eax, byte [ebp - 0x41]
or edx, ecx
movzx ecx, byte [ebp - 0xa0]
shl edx, 8
xor eax, 0x13
movzx eax, al
or edx, ecx
shl eax, 8
mov dword [ebp - 0xa0], edx
or eax, ebx
movzx ebx, byte [ebp - 0xac]
shl eax, 8
or eax, ebx
movzx ebx, byte [ebp - 0xa8]
shl eax, 8
or eax, ebx
lea ebx, [ebp - 0x38]
mov dword [ebp - 0x9c], eax
vmovq xmm1, qword [ebp - 0xa0]
lea eax, [ebp - 0x48]
vmovq qword [ebp - 0x48], xmm1
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0xa0], eax
call eax
sub esp, 4
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov ebx, eax
sub esp, 8
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5f8]
test al, al
je 0x61523da8
mov dword [0x615f1b18], esi
mov dword [0x615f1b1c], edi
mov byte [0x615f1b20], 0x5b
mov dword [esp], 0x615f1b18
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef530]
test al, al
je 0x61523d58
mov dword [0x615f1988], esi
mov dword [0x615f198c], edi
mov byte [0x615f1990], 0x5b
mov dword [esp], 0x615f1988
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef538]
test al, al
je 0x61523d08
mov dword [0x615f1998], esi
mov dword [0x615f199c], edi
mov byte [0x615f19a0], 0x5b
mov dword [esp], 0x615f1998
call fcn.6152b7e0
mov dword [ebp - 0x48], 0xc9d0e6f2
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef540]
test al, al
je 0x61523cb8
mov dword [0x615f19a8], esi
mov dword [0x615f19ac], edi
mov byte [0x615f19b0], 0x5b
mov dword [esp], 0x615f19a8
call sub.msvcrt.dll_getenv
test eax, eax
je 0x61522fb9
lea eax, [ebp - 0x48]
call eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef548]
test al, al
je 0x61523c68
mov dword [0x615f19b8], esi
mov dword [0x615f19bc], edi
mov byte [0x615f19c0], 0x5b
mov dword [esp], 0x615f19b8
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef550]
test al, al
je 0x61523c18
mov dword [0x615f19c8], esi
mov dword [0x615f19cc], edi
mov byte [0x615f19d0], 0x5b
mov dword [esp], 0x615f19c8
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef558]
test al, al
je 0x61523bc8
mov dword [0x615f19d8], esi
mov dword [0x615f19dc], edi
mov byte [0x615f19e0], 0x5b
mov dword [esp], 0x615f19d8
call fcn.6152b7e0
mov dword [ebp - 0x48], 0xdde0eef6
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef560]
test al, al
je 0x61523b78
mov dword [0x615f19e8], esi
mov dword [0x615f19ec], edi
mov byte [0x615f19f0], 0x5b
mov dword [esp], 0x615f19e8
call sub.msvcrt.dll_getenv
test eax, eax
je 0x615230a9
lea eax, [ebp - 0x48]
call eax
mov eax, 0x3734
mov byte [ebp - 0x66], 0
mov word [ebp - 0x68], ax
call sub.msvcrt.dll_rand
xor word [ebp - 0x68], 0x302
lea eax, [ebp - 0x68]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [ebp - 0x48], 0x353f343c
mov dword [ebp - 0xb0], eax
mov byte [ebp - 0x44], 0
call sub.msvcrt.dll_rand
xor dword [ebp - 0x48], 0x7060504
lea eax, [ebp - 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [ebp - 0x38], 0x313f3530
mov dword [ebp - 0xa4], eax
mov byte [ebp - 0x34], 0
call sub.msvcrt.dll_rand
lea ecx, [ebp - 0x38]
xor dword [ebp - 0x38], 0x7060504
mov dword [esp], ecx
call sub.msvcrt.dll_atoi
mov dword [ebp - 0xa8], eax
call sub.msvcrt.dll_rand
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], 0x303031
mov dword [esp], ecx
call sub.msvcrt.dll_atoi
mov byte [ebp - 0x76], 0
mov dword [ebp - 0xac], eax
mov eax, 0x322f
mov word [ebp - 0x78], ax
call sub.msvcrt.dll_rand
lea ecx, [ebp - 0x78]
xor word [ebp - 0x78], 0x302
mov dword [esp], ecx
call sub.msvcrt.dll_atoi
mov dword [esp + 0x14], 0
mov ecx, dword [ebp - 0xb0]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xa4]
or edx, ecx
mov dword [esp + 0xc], edx
mov ecx, dword [ebp - 0xac]
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov dword [esp], eax
call ebx
sub esp, 0x18
test eax, eax
je 0x615242f3
mov eax, 0x6b646e58
mov edx, 0x3c7d7c4b
mov dword [ebp - 0x88], eax
mov eax, dword [0x615f4500]
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x80], eax
call sub.msvcrt.dll_rand
movzx ebx, byte [ebp - 0x86]
xor byte [ebp - 0x7e], 0x15
movzx eax, byte [ebp - 0x88]
movzx edx, byte [ebp - 0x85]
xor ebx, 0xd
movzx ecx, byte [ebp - 0x87]
xor word [ebp - 0x80], 0x1413
mov byte [ebp - 0xac], bl
movzx ebx, byte [ebp - 0x82]
xor eax, 0xb
xor edx, 0xe
mov byte [ebp - 0xa4], al
movzx edx, dl
movzx eax, byte [ebp - 0x84]
xor ecx, 0xc
xor ebx, 0x11
shl edx, 8
mov byte [ebp - 0xa8], cl
movzx ecx, byte [ebp - 0x83]
mov byte [ebp - 0xb1], bl
movzx ebx, byte [ebp - 0xac]
xor eax, 0xf
mov byte [ebp - 0xb0], al
movzx eax, byte [ebp - 0x81]
xor ecx, 0x10
or edx, ebx
movzx ebx, byte [ebp - 0xa8]
movzx ecx, cl
shl edx, 8
xor eax, 0x12
or edx, ebx
movzx ebx, byte [ebp - 0xa4]
movzx eax, al
shl eax, 8
shl edx, 8
mov dword [ebp - 0xa4], ebx
movzx ebx, byte [ebp - 0xb1]
or eax, ebx
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xb0]
shl eax, 8
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xa8], ecx
or eax, edx
mov edx, dword [ebp - 0xac]
mov ecx, eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x88], ecx
or eax, edx
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x88]
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
sub esp, 4
test eax, eax
je 0x615234d0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef590]
test al, al
je 0x615242a8
mov dword [0x615f1a48], esi
mov dword [0x615f1a4c], edi
mov byte [0x615f1a50], 0x5b
mov dword [esp], 0x615f1a48
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5a0]
test al, al
je 0x61524258
mov dword [0x615f1a68], esi
mov dword [0x615f1a6c], edi
mov byte [0x615f1a70], 0x5b
mov dword [esp], 0x615f1a68
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5a8]
test al, al
je 0x61524208
mov dword [0x615f1a78], esi
mov dword [0x615f1a7c], edi
mov byte [0x615f1a80], 0x5b
mov dword [esp], 0x615f1a78
call fcn.6152b7e0
mov dword [ebp - 0x48], 0x19100602
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5b0]
test al, al
je 0x615241b8
mov dword [0x615f1a88], esi
mov dword [0x615f1a8c], edi
mov byte [0x615f1a90], 0x5b
mov dword [esp], 0x615f1a88
call sub.msvcrt.dll_getenv
test eax, eax
je 0x615233cb
lea eax, [ebp - 0x48]
call eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5b8]
test al, al
je 0x61524168
mov dword [0x615f1a98], esi
mov dword [0x615f1a9c], edi
mov byte [0x615f1aa0], 0x5b
mov dword [esp], 0x615f1a98
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5c0]
test al, al
je 0x61524118
mov dword [0x615f1aa8], esi
mov dword [0x615f1aac], edi
mov byte [0x615f1ab0], 0x5b
mov dword [esp], 0x615f1aa8
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5c8]
test al, al
je 0x615240c8
mov dword [0x615f1ab8], esi
mov dword [0x615f1abc], edi
mov byte [0x615f1ac0], 0x5b
mov dword [esp], 0x615f1ab8
call fcn.6152b7e0
mov dword [ebp - 0x48], 0x2d200e06
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef5d0]
test al, al
je 0x61524078
mov dword [0x615f1ac8], esi
mov dword [0x615f1acc], edi
mov byte [0x615f1ad0], 0x5b
mov dword [esp], 0x615f1ac8
call sub.msvcrt.dll_getenv
test eax, eax
je 0x615234bb
lea eax, [ebp - 0x48]
call eax
xor eax, eax
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov edx, 0x753e767e
mov ecx, 0x7f7e
mov eax, 0x7e697b7d
mov byte [ebp - 0x8e], 0
mov dword [ebp - 0x94], edx
mov word [ebp - 0x90], cx
mov dword [ebp - 0x98], eax
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x98]
movzx edx, byte [ebp - 0x96]
xor word [ebp - 0x90], 0x1312
movzx ecx, byte [ebp - 0x97]
xor eax, 0xa
xor edx, 0xc
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x94]
movzx ebx, dl
xor ecx, 0xb
movzx edx, byte [ebp - 0x95]
mov byte [ebp - 0xa8], cl
xor eax, 0xe
movzx ecx, byte [ebp - 0x92]
mov byte [ebp - 0xac], al
movzx eax, byte [ebp - 0x93]
xor edx, 0xd
xor ecx, 0x10
movzx edx, dl
xor eax, 0xf
movzx ecx, cl
shl edx, 8
mov byte [ebp - 0xb0], al
movzx eax, byte [ebp - 0x91]
or edx, ebx
movzx ebx, byte [ebp - 0xa8]
shl edx, 8
xor eax, 0x11
movzx eax, al
or edx, ebx
movzx ebx, byte [ebp - 0xa4]
shl eax, 8
shl edx, 8
or eax, ecx
movzx ecx, byte [ebp - 0xb0]
mov dword [ebp - 0xa4], ebx
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0xac]
shl eax, 8
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xa8], ecx
or eax, edx
mov edx, dword [ebp - 0xac]
mov ecx, eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x98], ecx
or eax, edx
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x98]
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
sub esp, 4
test eax, eax
jne 0x615232db
mov eax, 0x61797f7b
mov edx, 0x3c72757d
mov dword [ebp - 0x78], eax
mov eax, dword [0x615f4500]
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x78]
movzx edx, byte [ebp - 0x76]
movzx ebx, byte [ebp - 0x77]
xor word [ebp - 0x70], 0x1413
xor eax, 0xb
xor edx, 0xd
xor byte [ebp - 0x6e], 0x15
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x74]
movzx ecx, dl
xor ebx, 0xc
movzx edx, byte [ebp - 0x75]
mov byte [ebp - 0xa8], bl
xor eax, 0xf
movzx ebx, byte [ebp - 0x73]
mov byte [ebp - 0xac], al
xor edx, 0xe
movzx eax, byte [ebp - 0x72]
movzx edx, dl
xor ebx, 0x10
xor eax, 0x11
shl edx, 8
mov byte [ebp - 0xb0], bl
or edx, ecx
mov ebx, eax
movzx ecx, byte [ebp - 0xa8]
movzx eax, byte [ebp - 0x71]
shl edx, 8
or edx, ecx
xor eax, 0x12
movzx ecx, byte [ebp - 0xa4]
shl edx, 8
movzx eax, al
mov dword [ebp - 0xa8], edx
shl eax, 8
movzx edx, bl
or eax, edx
movzx edx, byte [ebp - 0xb0]
mov dword [ebp - 0xa4], ecx
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xac]
shl eax, 8
mov dword [ebp - 0xac], edx
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xa4]
or eax, edx
mov edx, dword [ebp - 0xac]
mov ecx, eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x78], ecx
or eax, edx
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x78]
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
sub esp, 4
test eax, eax
jne 0x615232db
mov eax, 0x666e617c
mov edx, 0x3c7a736a
mov dword [ebp - 0x68], eax
mov eax, dword [0x615f4500]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x65]
movzx ecx, byte [ebp - 0x66]
movzx edx, byte [ebp - 0x67]
movzx ebx, byte [ebp - 0x68]
xor eax, 0xe
xor ecx, 0xd
xor word [ebp - 0x60], 0x1413
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x64]
movzx ecx, cl
xor edx, 0xc
movzx edx, dl
xor ebx, 0xb
xor byte [ebp - 0x5e], 0x15
xor eax, 0xf
movzx ebx, bl
mov byte [ebp - 0xa8], al
movzx eax, byte [ebp - 0x63]
xor eax, 0x10
mov byte [ebp - 0xac], al
movzx eax, byte [ebp - 0x62]
xor eax, 0x11
mov byte [ebp - 0xb0], al
movzx eax, byte [ebp - 0x61]
xor eax, 0x12
mov byte [ebp - 0xb1], al
movzx eax, byte [ebp - 0xa4]
mov dword [ebp - 0xa4], ebx
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov edx, eax
movzx eax, byte [ebp - 0xb1]
shl edx, 8
mov dword [ebp - 0xb8], edx
movzx edx, byte [ebp - 0xb0]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xac]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xa8]
shl eax, 8
mov dword [ebp - 0xa8], edx
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
or eax, edx
mov edx, dword [ebp - 0xa8]
mov ecx, eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x68], ecx
or eax, edx
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
sub esp, 4
test eax, eax
jne 0x615232db
mov eax, 0x666a6e6f
mov edx, 0x3c617c6a
mov dword [ebp - 0x58], eax
mov eax, dword [0x615f4500]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x55]
movzx ecx, byte [ebp - 0x56]
movzx edx, byte [ebp - 0x57]
movzx ebx, byte [ebp - 0x58]
xor eax, 0xe
xor ecx, 0xd
xor word [ebp - 0x50], 0x1413
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x54]
movzx ecx, cl
xor edx, 0xc
movzx edx, dl
xor ebx, 0xb
xor byte [ebp - 0x4e], 0x15
xor eax, 0xf
movzx ebx, bl
mov byte [ebp - 0xa8], al
movzx eax, byte [ebp - 0x53]
xor eax, 0x10
mov byte [ebp - 0xac], al
movzx eax, byte [ebp - 0x52]
xor eax, 0x11
mov byte [ebp - 0xb0], al
movzx eax, byte [ebp - 0x51]
xor eax, 0x12
mov byte [ebp - 0xb1], al
movzx eax, byte [ebp - 0xa4]
mov dword [ebp - 0xa4], ebx
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov edx, eax
movzx eax, byte [ebp - 0xb1]
shl edx, 8
mov dword [ebp - 0xb8], edx
movzx edx, byte [ebp - 0xb0]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xac]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xa8]
shl eax, 8
mov dword [ebp - 0xa8], edx
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa4]
or eax, edx
mov edx, dword [ebp - 0xa8]
mov ecx, eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x58], ecx
or eax, edx
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
sub esp, 4
test eax, eax
jne 0x615232db
mov eax, 0x51647c6a
mov edx, 0x3c767f63
mov dword [ebp - 0x48], eax
mov eax, dword [0x615f4500]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x45]
movzx ecx, byte [ebp - 0x46]
movzx edx, byte [ebp - 0x47]
movzx ebx, byte [ebp - 0x48]
xor eax, 0xe
xor ecx, 0xd
xor word [ebp - 0x40], 0x1413
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x44]
movzx ecx, cl
xor edx, 0xc
movzx edx, dl
xor ebx, 0xb
xor byte [ebp - 0x3e], 0x15
xor eax, 0xf
movzx ebx, bl
mov byte [ebp - 0xa8], al
movzx eax, byte [ebp - 0x43]
xor eax, 0x10
mov byte [ebp - 0xac], al
movzx eax, byte [ebp - 0x42]
xor eax, 0x11
mov byte [ebp - 0xb0], al
movzx eax, byte [ebp - 0x41]
xor eax, 0x12
mov byte [ebp - 0xb1], al
movzx eax, byte [ebp - 0xa4]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov edx, eax
movzx eax, byte [ebp - 0xb1]
shl edx, 8
mov dword [ebp - 0xa4], edx
movzx edx, byte [ebp - 0xb0]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xac]
shl eax, 8
mov ecx, eax
movzx eax, byte [ebp - 0xa8]
or ecx, edx
shl ecx, 8
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0xa4]
or ecx, ebx
mov ebx, dword [ebp - 0xa8]
mov eax, ecx
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
or ebx, ecx
mov dword [ebp - 0x44], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
sub esp, 4
test eax, eax
jne 0x615232db
mov edx, 0x77677366
mov eax, 0x4f7d6769
mov dword [ebp - 0x30], 0x7473387d
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], eax
mov word [ebp - 0x2c], 0x75
call sub.msvcrt.dll_rand
movzx eax, byte [ebp - 0x35]
movzx ecx, byte [ebp - 0x36]
movzx edx, byte [ebp - 0x37]
movzx ebx, byte [ebp - 0x38]
xor eax, 0x10
xor ecx, 0xf
xor dword [ebp - 0x30], 0x18171615
mov byte [ebp - 0xa4], al
movzx eax, byte [ebp - 0x34]
movzx ecx, cl
xor edx, 0xe
movzx edx, dl
xor ebx, 0xd
xor byte [ebp - 0x2c], 0x19
xor eax, 0x11
movzx ebx, bl
mov byte [ebp - 0xa8], al
movzx eax, byte [ebp - 0x33]
xor eax, 0x12
mov byte [ebp - 0xac], al
movzx eax, byte [ebp - 0x32]
xor eax, 0x13
mov byte [ebp - 0xb0], al
movzx eax, byte [ebp - 0x31]
xor eax, 0x14
mov byte [ebp - 0xb1], al
movzx eax, byte [ebp - 0xa4]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov edx, eax
movzx eax, byte [ebp - 0xb1]
shl edx, 8
mov dword [ebp - 0xa4], edx
movzx edx, byte [ebp - 0xb0]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0xac]
shl eax, 8
mov ecx, eax
movzx eax, byte [ebp - 0xa8]
or ecx, edx
shl ecx, 8
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0xa4]
or ecx, ebx
mov ebx, dword [ebp - 0xa8]
mov eax, ecx
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
or ebx, ecx
mov dword [ebp - 0x34], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xa0]
call eax
push edx
test eax, eax
jne 0x615232db
mov eax, 1
jmp 0x615234bd
mov dword [esp], 0x615ef560
call fcn.615dfad0
test eax, eax
je 0x61523081
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f19e8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f19ec], edx
mov byte [0x615f19f0], al
mov dword [esp], 0x615e1fa0
call fcn.615013c0
mov dword [esp], 0x615ef560
call fcn.615dfba0
jmp 0x61523081
mov dword [esp], 0x615ef558
call fcn.615dfad0
test eax, eax
je 0x61523042
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f19d8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f19dc], edx
mov byte [0x615f19e0], al
mov dword [esp], 0x615e1f90
call fcn.615013c0
mov dword [esp], 0x615ef558
call fcn.615dfba0
jmp 0x61523042
mov dword [esp], 0x615ef550
call fcn.615dfad0
test eax, eax
je 0x6152300a
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f19c8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f19cc], edx
mov byte [0x615f19d0], al
mov dword [esp], 0x615e1f80
call fcn.615013c0
mov dword [esp], 0x615ef550
call fcn.615dfba0
jmp 0x6152300a
mov dword [esp], 0x615ef548
call fcn.615dfad0
test eax, eax
je 0x61522fd2
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f19b8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f19bc], edx
mov byte [0x615f19c0], al
mov dword [esp], 0x615e1f70
call fcn.615013c0
mov dword [esp], 0x615ef548
call fcn.615dfba0
jmp 0x61522fd2
mov dword [esp], 0x615ef540
call fcn.615dfad0
test eax, eax
je 0x61522f91
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f19a8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f19ac], edx
mov byte [0x615f19b0], al
mov dword [esp], 0x615e1f60
call fcn.615013c0
mov dword [esp], 0x615ef540
call fcn.615dfba0
jmp 0x61522f91
mov dword [esp], 0x615ef538
call fcn.615dfad0
test eax, eax
je 0x61522f52
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1998], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f199c], edx
mov byte [0x615f19a0], al
mov dword [esp], 0x615e1f50
call fcn.615013c0
mov dword [esp], 0x615ef538
call fcn.615dfba0
jmp 0x61522f52
mov dword [esp], 0x615ef530
call fcn.615dfad0
test eax, eax
je 0x61522f1a
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1988], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f198c], edx
mov byte [0x615f1990], al
mov dword [esp], 0x615e1f40
call fcn.615013c0
mov dword [esp], 0x615ef530
call fcn.615dfba0
jmp 0x61522f1a
mov dword [esp], 0x615ef5f8
call fcn.615dfad0
test eax, eax
je 0x61522ee2
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1b18], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1b1c], edx
mov byte [0x615f1b20], al
mov dword [esp], 0x615e1f30
call fcn.615013c0
mov dword [esp], 0x615ef5f8
call fcn.615dfba0
jmp 0x61522ee2
mov dword [esp], 0x615ef5f0
call fcn.615dfad0
test eax, eax
je 0x61522d69
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1b08], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1b0c], edx
mov byte [0x615f1b10], al
mov dword [esp], 0x615e1f20
call fcn.615013c0
mov dword [esp], 0x615ef5f0
call fcn.615dfba0
jmp 0x61522d69
mov dword [esp], 0x615ef5e8
call fcn.615dfad0
test eax, eax
je 0x61522d2a
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1af8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1afc], edx
mov byte [0x615f1b00], al
mov dword [esp], 0x615e1f10
call fcn.615013c0
mov dword [esp], 0x615ef5e8
call fcn.615dfba0
jmp 0x61522d2a
mov dword [esp], 0x615ef5e0
call fcn.615dfad0
test eax, eax
je 0x61522cf2
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1ae8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1aec], edx
mov byte [0x615f1af0], al
mov dword [esp], 0x615e1f00
call fcn.615013c0
mov dword [esp], 0x615ef5e0
call fcn.615dfba0
jmp 0x61522cf2
mov dword [esp], 0x615ef5d8
call fcn.615dfad0
test eax, eax
je 0x61522cba
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1ad8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1adc], edx
mov byte [0x615f1ae0], al
mov dword [esp], 0x615e1ee0
call fcn.615013c0
mov dword [esp], 0x615ef5d8
call fcn.615dfba0
jmp 0x61522cba
mov dword [esp], 0x615ef598
call fcn.615dfad0
test eax, eax
je 0x61522c79
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a58], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a5c], edx
mov byte [0x615f1a60], al
mov dword [esp], 0x615e1ed0
call fcn.615013c0
mov dword [esp], 0x615ef598
call fcn.615dfba0
jmp 0x61522c79
mov dword [esp], 0x615ef570
call fcn.615dfad0
test eax, eax
je 0x61522c3a
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a08], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a0c], edx
mov byte [0x615f1a10], al
mov dword [esp], 0x615e1ec0
call fcn.615013c0
mov dword [esp], 0x615ef570
call fcn.615dfba0
jmp 0x61522c3a
mov dword [esp], 0x615ef528
call fcn.615dfad0
test eax, eax
je 0x61522c02
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1978], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f197c], edx
mov byte [0x615f1980], al
mov dword [esp], 0x615e1eb0
call fcn.615013c0
mov dword [esp], 0x615ef528
call fcn.615dfba0
jmp 0x61522c02
mov dword [esp], 0x615ef600
call fcn.615dfad0
test eax, eax
je 0x61522bca
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1b28], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1b2c], edx
mov byte [0x615f1b30], al
mov dword [esp], 0x615e1ea0
call fcn.615013c0
mov dword [esp], 0x615ef600
call fcn.615dfba0
jmp 0x61522bca
mov dword [esp], 0x615ef5d0
call fcn.615dfad0
test eax, eax
je 0x61523493
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1ac8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1acc], edx
mov byte [0x615f1ad0], al
mov dword [esp], 0x615e2080
call fcn.615013c0
mov dword [esp], 0x615ef5d0
call fcn.615dfba0
jmp 0x61523493
mov dword [esp], 0x615ef5c8
call fcn.615dfad0
test eax, eax
je 0x61523454
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1ab8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1abc], edx
mov byte [0x615f1ac0], al
mov dword [esp], 0x615e2070
call fcn.615013c0
mov dword [esp], 0x615ef5c8
call fcn.615dfba0
jmp 0x61523454
mov dword [esp], 0x615ef5c0
call fcn.615dfad0
test eax, eax
je 0x6152341c
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1aa8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1aac], edx
mov byte [0x615f1ab0], al
mov dword [esp], 0x615e2060
call fcn.615013c0
mov dword [esp], 0x615ef5c0
call fcn.615dfba0
jmp 0x6152341c
mov dword [esp], 0x615ef5b8
call fcn.615dfad0
test eax, eax
je 0x615233e4
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a98], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a9c], edx
mov byte [0x615f1aa0], al
mov dword [esp], 0x615e2040
call fcn.615013c0
mov dword [esp], 0x615ef5b8
call fcn.615dfba0
jmp 0x615233e4
mov dword [esp], 0x615ef5b0
call fcn.615dfad0
test eax, eax
je 0x615233a3
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a88], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a8c], edx
mov byte [0x615f1a90], al
mov dword [esp], 0x615e2030
call fcn.615013c0
mov dword [esp], 0x615ef5b0
call fcn.615dfba0
jmp 0x615233a3
mov dword [esp], 0x615ef5a8
call fcn.615dfad0
test eax, eax
je 0x61523364
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a78], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a7c], edx
mov byte [0x615f1a80], al
mov dword [esp], 0x615e2020
call fcn.615013c0
mov dword [esp], 0x615ef5a8
call fcn.615dfba0
jmp 0x61523364
mov dword [esp], 0x615ef5a0
call fcn.615dfad0
test eax, eax
je 0x6152332c
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a68], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a6c], edx
mov byte [0x615f1a70], al
mov dword [esp], 0x615e2010
call fcn.615013c0
mov dword [esp], 0x615ef5a0
call fcn.615dfba0
jmp 0x6152332c
mov dword [esp], 0x615ef590
call fcn.615dfad0
test eax, eax
je 0x615232f4
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a48], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a4c], edx
mov byte [0x615f1a50], al
mov dword [esp], 0x615e2000
call fcn.615013c0
mov dword [esp], 0x615ef590
call fcn.615dfba0
jmp 0x615232f4
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef568]
test al, al
je 0x615243e3
mov dword [0x615f19f8], esi
mov dword [0x615f19fc], edi
mov byte [0x615f1a00], 0x5b
mov dword [esp], 0x615f19f8
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef578]
test al, al
je 0x615244c4
mov dword [0x615f1a18], esi
mov dword [0x615f1a1c], edi
mov byte [0x615f1a20], 0x5b
mov dword [esp], 0x615f1a18
call fcn.6152b7e0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef580]
test al, al
je 0x61524479
mov dword [0x615f1a28], esi
mov dword [0x615f1a2c], edi
mov byte [0x615f1a30], 0x5b
mov dword [esp], 0x615f1a28
call fcn.6152b7e0
mov dword [ebp - 0x48], 0xf1f0f6fa
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x30], 0x5b
movzx eax, byte [0x615ef588]
test al, al
je 0x6152442e
mov dword [0x615f1a38], esi
mov dword [0x615f1a3c], edi
mov byte [0x615f1a40], 0x5b
mov dword [esp], 0x615f1a38
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x615234b6
jmp 0x615234bb
mov dword [esp], 0x615ef568
call fcn.615dfad0
test eax, eax
je 0x6152430c
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f19f8], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f19fc], edx
mov byte [0x615f1a00], al
mov dword [esp], 0x615e1fb0
call fcn.615013c0
mov dword [esp], 0x615ef568
call fcn.615dfba0
jmp 0x6152430c
mov dword [esp], 0x615ef588
call fcn.615dfad0
test eax, eax
je 0x615243b7
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a38], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a3c], edx
mov byte [0x615f1a40], al
mov dword [esp], 0x615e1fe0
call fcn.615013c0
mov dword [esp], 0x615ef588
call fcn.615dfba0
jmp 0x615243b7
mov dword [esp], 0x615ef580
call fcn.615dfad0
test eax, eax
je 0x6152437c
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a28], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a2c], edx
mov byte [0x615f1a30], al
mov dword [esp], 0x615e1fd0
call fcn.615013c0
mov dword [esp], 0x615ef580
call fcn.615dfba0
jmp 0x6152437c
mov dword [esp], 0x615ef578
call fcn.615dfad0
test eax, eax
je 0x61524344
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0x615f1a18], eax
movzx eax, byte [ebp - 0x30]
mov dword [0x615f1a1c], edx
mov byte [0x615f1a20], al
mov dword [esp], 0x615e1fc0
call fcn.615013c0
mov dword [esp], 0x615ef578
call fcn.615dfba0
jmp 0x61524344