Function at 0x419030
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], 0x4b0845fa
mov dword [esp + 0x14], 0x4fed49db
mov dword [esp + 0x18], 0xb3e04de9
mov dword [esp + 0x1c], 0xb7fbb1d2
mov dword [esp + 0x20], 0xbb20b52e
mov dword [esp + 0x24], 0xbf2ab911
mov dword [esp + 0x28], 0xa313bd2b
mov dword [esp + 0x2c], 0xa732a133
mov dword [esp + 0x30], 0xab11a5c6
mov dword [esp + 0x34], 0xaf3ca901
mov dword [esp + 0x38], 0x9303ad3a
mov dword [esp + 0x3c], 0x97399100
mov dword [esp + 0x40], 0x9b289503
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x999a
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0x48]
cmp ecx, 0x37
ja 0x41911a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x48]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0xf84f1f5]
and esi, edx
add ecx, edx
add ecx, 0xf84f1f5
add esi, esi
sub ecx, esi
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x64]
mov edx, ecx
or edx, 0x4c
and ecx, 0x4c
add ecx, edx
inc cl
mov edx, dword [esp + 0x48]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
cmp ecx, 0x38
jb 0x4190d0
lea edi, [esp + 0x64]
lea edx, [esp + 0x10]
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x98]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x419150
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x419170
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x419190
mov eax, 0xffffffff
jmp 0x419197
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00408f80
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 8], eax
test cx, cx
je 0x4191d1
add esi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4191c0
mov word [eax], 0
movzx ecx, word [esp + 0x64]
test cx, cx
je 0x419201
lea edx, [esp + 0x66]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4191f0
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x419231
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x419220
mov word [eax], 0
mov dword [esp + 0x10], 0xebcf15e7
mov dword [esp + 0x14], 0xef5ce962
mov dword [esp + 0x18], 0xe35eed55
mov dword [esp + 0x1c], 0xe75fe157
mov dword [esp + 0x20], 0xfb56e557
mov dword [esp + 0x24], 0xff09f94f
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0xfdfe
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x25
ja 0x4192ea
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edi, byte [esp + edx + 0x10]
lea esi, [ecx + 0x1bdd817d]
mov edx, esi
and edx, edi
mov ebx, esi
xor ebx, edi
add ecx, 0x7d
or ecx, esi
and ecx, edi
not edi
or esi, edi
add ecx, esi
add edi, ebx
sub edi, ecx
lea ecx, [edi + edx*2]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
add cl, 0x95
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x26
jb 0x4192a0
lea edi, [esp + 0x48]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x60]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x419320
mov esi, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x419340
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x419360
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x419384
mov eax, 0xffffffff
jmp 0x41938c
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00408f80
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x4193c1
add edi, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4193b0
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x4193f1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4193e0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x419423
lea edx, [esp + 0x4a]
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x419410
jmp 0x419427
mov esi, dword [esp + 8]
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x419451
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x419440
mov word [eax], 0
mov dword [esp + 0x10], 0x333231ca
mov dword [esp + 0x14], 0
mov word [esp + 0x18], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x4194ba
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x58]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x3db1f858
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x98
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x419480
push 0
push 0
push 0xc00000
lea eax, [esp + 0x1c]
push eax
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.0041bb90
add esp, 0x1c
mov ebx, eax
jmp dword [0x442e5c]