Function at 0x42c968
Capabilities:
Accept command line arguments
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4f4
mov dword [ebp - 0x9c], edx
xor edx, edx
mov dword [ebp - 0x6c], ecx
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x80], 0xa
mov dword [ebp - 0x7c], 0xd
mov dword [ebp - 0x78], 0xffffffe9
sub ecx, dword [ebp + eax*4 - 0x80]
inc eax
cmp eax, 3
jl 0x42c995
push esi
push edi
push 7
mov dword [ebp - 0x94], ecx
lea edi, [ebp - 0xbc]
pop ecx
mov esi, 0x401e38
mov dword [ebp - 0x40], 0x94567e71
rep movsd dword es:[edi], dword [esi]
mov eax, 0x402d4c
mov dword [ebp - 0x3c], 0xa3ecb655
push 0x50
mov dword [ebp - 0x38], 0xc8fdc6fc
mov edx, 0x1d1e
movsw word es:[edi], word [esi]
mov dword [ebp - 0x34], 0x5c005e2a
mov dword [ebp - 0x30], 0xfee839f9
mov dword [ebp - 0x2c], 0x20eea798
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x28], eax
pop ecx
add edx, ecx
inc eax
cmp edx, 0xda6
ja 0x42ca0d
movsx ecx, byte [eax]
test ecx, ecx
jne 0x42c9f4
mov eax, dword [0x44d7d4]
jmp 0x42ca17
mov eax, dword [0x44d7d4]
add eax, 0x402821f1
and eax, 0x8c546f63
mov dword [0x44d7d4], eax
or dword [str.7g5_failureType], 0x8e016e28
call fcn.0042c70c
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0x42ca36
mov esi, ecx
mov dword [ebp - 8], 0x1e
xor edx, edx
mov cl, byte [ebp + esi - 0x1bc]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 8]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0xbc]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1bc], al
cmp esi, 0x100
jb 0x42ca4e
xor eax, eax
mov dword [ebp - 0xc], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x40]
mov byte [ebp + esi - 0x1d8], al
inc esi
cmp esi, 0x18
jb 0x42ca9b
push 6
pop eax
mov ecx, eax
mov dword [ebp - 0x78], eax
mov esi, 0x401f54
mov dword [ebp - 0xc], 0xb4526f5b
lea edi, [ebp - 0xb8]
xor edx, edx
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x1c0], dl
mov eax, edx
movsw word es:[edi], word [esi]
mov edi, edx
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0x42cb1d
mov esi, edx
mov dword [ebp - 8], 0x19
xor edx, edx
mov cl, byte [ebp + esi - 0x1bc]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 8]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0xb8]
add eax, edi
add ecx, eax
xor edx, edx
movzx edi, cl
mov eax, 0x402cb0
mov ecx, edx
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x1569
je 0x42cb79
cmp word [eax], dx
jne 0x42cb61
mov eax, dword [str.7g5_failureType]
jmp 0x42cb8d
call fcn.0042c837
mov eax, dword [str.7g5_failureType]
add eax, 0x5b90d53a
mov dword [str.7g5_failureType], eax
imul eax, eax, 0xa15d15a2
mov dword [0x44d7d4], eax
call fcn.0042c70c
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1bc], al
cmp esi, 0x100
jb 0x42cb35
xor ecx, ecx
mov dword [ebp - 0x44], ecx
mov eax, ecx
mov edi, ecx
inc eax
movzx eax, al
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
mov cl, byte [ebp + eax - 0x1bc]
mov eax, dword [ebp - 0x44]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x44], eax
mov al, byte [ebp + eax - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
mov eax, dword [ebp - 0x44]
mov esi, dword [0x44d7d4]
and esi, 0xac20a69d
mov dword [0x44d7d4], esi
mov byte [ebp + eax - 0x1bc], cl
mov eax, dword [ebp - 8]
movzx eax, byte [ebp + eax - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + edi - 0xc]
mov byte [ebp + edi - 0x90], al
inc edi
mov eax, dword [ebp - 8]
cmp edi, 4
jb 0x42cbcb
mov dword [ebp - 0x18], 0x5e
xor ecx, ecx
mov dword [ebp - 0x14], 0x24
mov edx, ecx
mov dword [ebp - 0x10], 0xffffff22
xorps xmm2, xmm2
mov dword [ebp - 0x1c], 0x30
movups xmm1, xmmword [ebp - 0x1c]
push 0x50
mov byte [ebp - 0x8c], cl
movaps xmm0, xmm1
mov dword [ebp - 8], edx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], 0x56
movups xmm0, xmm1
mov dword [ebp - 0x14], 0x64
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0xffffff46
movd eax, xmm1
pop ecx
add eax, 0x2c
mov dword [ebp - 0x64], eax
sub cl, 0x30
cmp cl, 9
ja 0x42ccc2
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0x42cca9
jmp 0x42ccde
or dword [str.7g5_failureType], 0x4f909060
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, dword [0x44d7d4]
xorps xmm2, xmm2
mov edx, dword [ebp - 8]
add esi, 0x5d2b0873
xor ecx, ecx
mov dword [0x44d7d4], esi
mov eax, ecx
sub edx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 3
jl 0x42ccee
push 7
mov eax, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], 0x57
mov dword [ebp - 0x14], 0x16
mov dword [ebp - 0x10], 0xffffff99
pop ecx
sub ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 3
jl 0x42cd15
push 0xe
pop eax
push 0x3c
pop edi
push 6
mov dword [ebp - 0x98], ecx
mov ecx, eax
mov dword [ebp - 0x74], eax
pop eax
push 5
pop edx
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x3c], 0x25
mov dword [ebp - 0x38], 0x1b
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], 0xffffff8a
mov dword [ebp - 0x70], edx
sub ecx, dword [ebp + eax*4 - 0x3c]
inc eax
cmp eax, edx
jl 0x42cd56
push 0x4b
pop edx
mov dword [ebp - 0xc], ecx
xor ecx, ecx
add esi, 0x6f4bea65
mov dword [ebp - 0x3c], 0x41
push 5
mov dword [ebp - 0x28], esi
mov eax, ecx
mov dword [ebp - 0x38], 0x1d
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0x54
mov dword [ebp - 0x2c], 0xffffff3b
pop esi
sub edi, dword [ebp + eax*4 - 0x3c]
inc eax
cmp eax, esi
jl 0x42cd94
mov dword [ebp - 0x88], 0xc
mov eax, ecx
mov dword [ebp - 0x84], 0xffffffb1
add edx, dword [ebp + eax*4 - 0x88]
inc eax
cmp eax, 2
jl 0x42cdb3
mov dword [ebp - 0x1c], 0x45
xor esi, esi
mov dword [ebp - 0x18], 0x56
mov dword [ebp - 0x14], 0x3f
mov dword [ebp - 0x10], 0xffffff25
movups xmm1, xmmword [ebp - 0x1c]
mov dword [ebp - 0x18], 0x63
mov dword [ebp - 0x14], 0x38
paddd xmm1, xmm2
mov dword [ebp - 0x10], 0xffffff45
movaps xmm0, xmm1
mov dword [ebp - 0x1c], 0x22
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x1c]
push 0x1e
add eax, 0x11
mov dword [ebp - 0x18], 9
paddd xmm1, xmm2
mov dword [ebp - 0x44], eax
movaps xmm0, xmm1
mov dword [ebp - 0x14], 0x55
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0xffffffa2
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
pop eax
add ecx, eax
mov eax, dword [ebp - 0x28]
or eax, 0xd0157d09
imul eax, eax, 0x1c36fa81
mov dword [ebp - 0x28], eax
xor eax, eax
sub esi, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 3
jl 0x42ce75
or ecx, dword [ebp - 0x44]
movaps xmm1, xmm2
mov eax, dword [ebp - 0x94]
or ecx, edx
mov dword [ebp - 0x1c], 0x17
or ecx, edi
or ecx, dword [ebp - 0xc]
or ecx, dword [ebp - 0x98]
mov dword [ebp - 0x18], 0x58
and ecx, 0xffefffff
mov dword [ebp - 0x14], 0x3f
or ecx, 0xf0000
mov dword [ebp - 0x10], 0xffffff52
movups xmm0, xmmword [ebp - 0x1c]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x28]
psubd xmm1, xmm0
and eax, 0x802f6bfd
movaps xmm0, xmm1
mov dword [str.7g5_failureType], eax
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push eax
lea eax, [ebp - 0x84]
push eax
push esi
push ecx
push 0
push dword [ebp - 8]
lea ecx, [ebp - 0x90]
push dword [ebp - 0x64]
push dword [ebp - 0x6c]
push 0x80000001
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x1d8]
call fcn.0041e636
call eax
test eax, eax
jne 0x42d3e9
mov esi, 0x401b90
mov byte [ebp - 0x24], 0x3b
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x22], 0xd300b54
push 0x19
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0x23], al
mov eax, ecx
mov dword [ebp - 0x1e], 0xc608e57c
mov dword [ebp - 0x1a], 0x3d91ace5
movsw word es:[edi], word [esi]
mov dword [ebp - 0x16], 0xb44e79de
mov dword [ebp - 0x12], 0x27998220
mov word [ebp - 0xe], 0x4709
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0x42cf78
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x1bc]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x78]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x6c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1bc], al
cmp esi, 0x100
jb 0x42cf89
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x24]
mov byte [ebp + esi - 0x1f4], al
inc esi
cmp esi, 0x18
jb 0x42cfd3
push 6
pop eax
mov byte [ebp - 9], al
xor ecx, ecx
mov eax, dword [0x401e58]
mov edi, ecx
mov dword [ebp - 0x7c], eax
mov ax, word [0x401e5c]
mov word [ebp - 0x78], ax
mov eax, ecx
mov byte [ebp - 0x1dc], cl
mov word [ebp - 0xc], 0xcc80
mov byte [ebp - 0xa], 0x57
mov byte [ebp + eax - 0x2f4], al
inc eax
cmp eax, 0x100
jb 0x42d059
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x2f4]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x70]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x7c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x2f4]
mov byte [ebp + esi - 0x2f4], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x2f4], al
cmp esi, 0x100
jb 0x42d06a
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x2f4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x2f4]
mov byte [ebp + edi - 0x2f4], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x2f4], cl
movzx eax, byte [ebp + edi - 0x2f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x2f4]
xor al, byte [ebp + esi - 0xc]
mov byte [ebp + esi - 0x6c], al
inc esi
cmp esi, 4
jb 0x42d0b4
imul eax, dword [str.7g5_failureType], 0xffab1497
lea edi, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x1f
mov esi, 0x401ba4
mov dword [ebp - 0x18], 0x43
xor ecx, ecx
mov dword [ebp - 0x14], 0x48
mov dword [ebp - 0x10], 0xffffff18
movups xmm1, xmmword [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
mov dword [0x44d7d4], eax
movaps xmm0, xmm1
mov byte [ebp - 0x68], cl
psrldq xmm0, 8
movsd dword es:[edi], dword [esi]
paddd xmm1, xmm0
movups xmm0, xmm1
mov dword [ebp - 0x5c], 0x1f38831d
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x58], 0x4db0288f
movsd dword es:[edi], dword [esi]
movd eax, xmm1
mov dword [ebp - 0x54], 0x3380cebd
mov dword [ebp - 0x50], 0xa8ab7e4d
movsw word es:[edi], word [esi]
add eax, 0x3e
mov dword [ebp - 0x78], eax
mov eax, ecx
mov dword [ebp - 0x4c], 0xf5108197
mov dword [ebp - 0x48], 0xb6a438ec
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x3f4], al
inc eax
cmp eax, 0x100
jb 0x42d19b
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x3f4]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x74]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x1c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x3f4]
mov byte [ebp + esi - 0x3f4], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x3f4], al
cmp esi, 0x100
jb 0x42d1ac
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
mov eax, dword [0x44d7d4]
or eax, 0x12b947d4
mov dword [ebp - 0x28], eax
mov dword [str.7g5_failureType], eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x3f4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x3f4]
mov byte [ebp + edi - 0x3f4], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x3f4], cl
movzx eax, byte [ebp + edi - 0x3f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x3f4]
xor al, byte [ebp + esi - 0x5c]
mov byte [ebp + esi - 0xb8], al
inc esi
cmp esi, 0x18
jb 0x42d208
mov esi, 0x4019f0
mov dword [ebp - 0xc], 0x24e8dc5c
lea edi, [ebp - 0x3c]
xor ecx, ecx
mov byte [ebp - 0xa0], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x4f4], al
inc eax
cmp eax, 0x100
jb 0x42d280
mov esi, ecx
mov dl, byte [ebp + esi - 0x4f4]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x3c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x4f4]
mov byte [ebp + esi - 0x4f4], al
inc esi
mov byte [ebp + edi - 0x4f4], dl
cmp esi, 0x100
jb 0x42d291
xor eax, eax
mov ecx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
mov dword [ebp - 8], 0x1acd
movzx edi, al
push 0x69
pop edx
mov al, byte [ebp + edi - 0x4f4]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x70], eax
add eax, ecx
movzx ecx, al
mov eax, 0x402cb0
mov dword [ebp - 0x74], ecx
add dword [ebp - 8], edx
lea eax, [eax + 2]
cmp dword [ebp - 8], 0x21b9
ja 0x42d324
movzx edx, word [eax]
test edx, edx
jne 0x42d2ff
and dword [0x44d7d4], 0xc6b572de
mov eax, dword [ebp - 0x28]
jmp 0x42d345
call fcn.0042c70c
mov ecx, dword [0x44d7d4]
and ecx, 0xb85ee0a1
mov dword [0x44d7d4], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x74]
and eax, 0x63b7bde5
imul eax, eax, 0xe3ec61e6
mov dword [ebp - 0x28], eax
mov dword [str.7g5_failureType], eax
mov al, byte [ebp + ecx - 0x4f4]
mov byte [ebp + edi - 0x4f4], al
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x4f4], al
movzx eax, byte [ebp + edi - 0x4f4]
add eax, dword [ebp - 0x70]
movzx eax, al
mov al, byte [ebp + eax - 0x4f4]
xor al, byte [ebp + esi - 0xc]
mov byte [ebp + esi - 0x64], al
inc esi
cmp esi, 4
jb 0x42d2d2
mov ecx, dword [ebp + 8]
mov byte [ebp - 0x60], 0
call fcn.004369fb
add eax, eax
lea ecx, [ebp - 0x6c]
push eax
push dword [ebp + 8]
push 1
push dword [ebp - 0x78]
push dword [ebp - 0x9c]
push dword [ebp - 0x84]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x1f4]
call fcn.0041e636
call eax
push dword [ebp - 0x84]
lea ecx, [ebp - 0x64]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0xb8]
call fcn.0041e636
call eax
pop edi
pop esi
leave
ret