Function at 0x42ded8
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x400
push ebx
push esi
push edi
push 0x73
pop edi
push 9
mov dword [ebp - 0x1d8], ecx
mov esi, 0x403270
pop ecx
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x48], ecx
lea eax, [edi - 0x30]
cmp ax, cx
ja 0x42df1b
add esi, 2
movzx eax, word [esi]
mov edi, eax
test ax, ax
jne 0x42defe
mov esi, dword [0x44a5dc]
jmp 0x42df27
mov esi, dword [0x44a5dc]
add esi, 0x640109dc
push 0xc
pop eax
mov byte [ebp - 0x6a], al
sub esi, 0x21d64eba
push 0xe
pop eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x69], al
push 7
pop eax
mov byte [ebp - 0x64], al
mov eax, dword [0x403124]
mov dword [ebp - 0x2c], eax
mov ax, word [0x403128]
mov byte [ebp - 0x80], cl
xor ecx, ecx
mov word [ebp - 0x28], ax
mov eax, ecx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x84], 0x6835560f
mov dword [ebp - 0x7f], 0xd623758b
mov dword [ebp - 0x7b], 0xf49a2b3f
mov dword [ebp - 0x77], 0xb6fe2fc
mov dword [ebp - 0x73], 0xfd873640
mov dword [ebp - 0x6f], 0x9a373870
mov byte [ebp - 0x6b], 0x6b
mov dword [ebp - 0x68], 0xcaea493c
mov dword [ebp - 0x63], 0xc7e967b6
mov dword [ebp - 0x5f], 0xfb9b850
mov word [ebp - 0x5b], 0x6cd6
mov byte [ebp - 0x59], 0x56
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42dfae
mov edi, ecx
push 5
pop ecx
mov esi, edi
xor edx, edx
mov bl, byte [ebp + edi - 0x1b8]
mov eax, edi
div ecx
movzx ecx, bl
push 5
movzx eax, byte [ebp + edx - 0x2c]
add eax, esi
add ecx, eax
movzx esi, cl
pop ecx
mov al, byte [ebp + esi - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
inc edi
mov byte [ebp + esi - 0x1b8], bl
cmp edi, 0x100
jb 0x42dfc4
mov esi, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x20], eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + ebx - 0x1b8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x1b8]
mov byte [ebp + ebx - 0x1b8], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x1b8], cl
movzx eax, byte [ebp + ebx - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + edi - 0x84]
mov byte [ebp + edi - 0x2d0], al
inc edi
cmp edi, 0x2c
jb 0x42e00d
mov eax, dword [0x4020c8]
xor ecx, ecx
imul esi, esi, 0x96af446d
mov dword [ebp - 0x58], eax
mov ax, word [0x4020cc]
mov word [ebp - 0x54], ax
mov eax, ecx
mov byte [ebp - 0x2a4], cl
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x2c], 0x76bbae68
mov word [ebp - 0x28], 0x4a24
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42e09a
mov edi, ecx
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x1b8]
push 5
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x58]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
inc edi
mov byte [ebp + esi - 0x1b8], bl
cmp edi, 0x100
jb 0x42e0ad
mov esi, dword [ebp - 0x20]
xor eax, eax
mov ebx, eax
mov edi, eax
mov edx, eax
lea eax, [edi + 1]
movzx edi, al
push 0x73
mov cl, byte [ebp + edi - 0x1b8]
movzx eax, cl
mov dword [ebp - 0x20], eax
add eax, ebx
movzx ebx, al
mov dword [ebp - 0x34], ebx
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov byte [ebp + ebx - 0x1b8], cl
mov ecx, 0x403270
pop eax
add eax, 0xffffffd0
cmp ax, word [ebp - 0x48]
ja 0x42e149
mov ebx, dword [ebp - 0x34]
add ecx, 2
movzx eax, word [ecx]
mov dword [ebp - 0x1c], eax
test ax, ax
jne 0x42e12d
jmp 0x42e14f
and esi, 0x419c15f3
movzx eax, byte [ebp + edi - 0x1b8]
and esi, 0x4025c16b
add eax, dword [ebp - 0x20]
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + edx - 0x2c]
mov byte [ebp + edx - 0x1e8], al
inc edx
cmp edx, 6
jb 0x42e0f5
mov dword [ebp - 0x10], 0x63
xor ecx, ecx
mov dword [ebp - 0xc], 0x42
or esi, 0x2e09d28a
mov dword [ebp - 8], 0x5a
xor esi, 0x3bf618ad
mov dword [ebp - 4], 0xffffff00
xorps xmm2, xmm2
movups xmm1, xmmword [ebp - 0x10]
mov byte [ebp - 0x1e2], cl
mov dword [ebp - 0x18], 0xdd3a5bd6
movaps xmm0, xmm1
mov dword [ebp - 0x14], 0xff68460b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0x5d1e1fa1
movups xmm0, xmm1
mov dword [ebp - 0xc], 0xb9023bcd
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 8], 0x4cf143b5
movd eax, xmm1
mov dword [ebp - 4], 0xf53fd828
mov dword [ebp - 0x40], 0x656e6567
add eax, 2
mov dword [ebp - 0x3c], 0x636972
mov dword [ebp - 0xb8], eax
mov eax, ecx
mov dword [ebp - 0x1c], ecx
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42e218
mov edi, ecx
cmp byte [0x44a634], 0
mov eax, ecx
je 0x42e24d
inc eax
cmp eax, 0xc05
je 0x42e247
cmp byte [eax + 0x44a634], 0
jne 0x42e234
jmp 0x42e24d
xor esi, 0xa5298b1e
add esi, 0xfe433ce1
sub esp, 0xc
or esi, 0xd38774ef
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
add esp, 0xc
mov bl, byte [ebp + edi - 0x1b8]
xor edx, edx
mov eax, edi
push 7
pop ecx
div ecx
movzx ecx, bl
push 0
movzx eax, byte [ebp + edx - 0x40]
add eax, dword [ebp - 0x1c]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x1c], ecx
mov al, byte [ebp + ecx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
inc edi
mov byte [ebp + ecx - 0x1b8], bl
pop ecx
cmp edi, 0x100
jb 0x42e229
xor eax, eax
mov dword [ebp - 0x20], esi
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 0x18
mov cl, byte [ebp + edi - 0x1b8]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov byte [ebp + ebx - 0x1b8], cl
movzx eax, byte [ebp + edi - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x214], al
inc esi
pop eax
cmp esi, eax
jb 0x42e2bb
push 0x1d
pop eax
push 5
mov byte [ebp - 0xf], al
lea edi, [ebp - 0x78]
pop eax
mov byte [ebp - 0xc], al
mov esi, 0x402880
push 7
pop eax
mov ecx, eax
mov dword [ebp - 0x18], 0x7e3f0662
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x14], 0xff873b1f
mov byte [ebp - 0x1fc], dl
mov eax, edx
mov byte [ebp - 0x10], 0x57
movsw word es:[edi], word [esi]
mov word [ebp - 0xe], 0xe946
mov edi, edx
mov dword [ebp - 0xb], 0xe2a84a59
mov dword [ebp - 7], 0xdfe15d54
mov word [ebp - 3], 0x5ed0
mov byte [ebp - 1], 0x74
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42e366
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x1b8]
push 0x1d
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x78]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1b8]
mov byte [ebp + esi - 0x1b8], al
inc esi
mov byte [ebp + edi - 0x1b8], bl
cmp esi, 0x100
jb 0x42e377
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 0x18
mov cl, byte [ebp + edi - 0x1b8]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov byte [ebp + ebx - 0x1b8], cl
movzx eax, byte [ebp + edi - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x230], al
inc esi
pop eax
cmp esi, eax
jb 0x42e3bc
mov esi, 0x401d48
mov word [ebp - 0x18], 0xc90d
lea edi, [ebp - 0x44]
mov byte [ebp - 0x16], 0xe4
push 0x1d
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0x15], al
push 7
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 1], al
mov eax, ecx
mov byte [ebp - 0x218], cl
mov dword [ebp - 0x14], 0x1479d8e8
movsw word es:[edi], word [esi]
mov dword [ebp - 0x10], 0x292d8d78
mov dword [ebp - 0xc], 0xfe538d29
mov dword [ebp - 8], 0xc942a038
movsb byte es:[edi], byte [esi]
mov word [ebp - 4], 0xe28d
mov edi, ecx
mov byte [ebp - 2], 3
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42e463
push 0xa
mov esi, ecx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1b8]
mov eax, esi
div ecx
movzx ecx, bl
push 0xa
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1b8]
mov byte [ebp + esi - 0x1b8], al
inc esi
mov byte [ebp + edi - 0x1b8], bl
cmp esi, 0x100
jb 0x42e477
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 0x18
mov cl, byte [ebp + edi - 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov byte [ebp + ebx - 0x1b8], cl
movzx eax, byte [ebp + edi - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x24c], al
inc esi
pop eax
cmp esi, eax
jb 0x42e4bc
xor ebx, ebx
mov eax, ebx
cmp byte [0x44a634], al
je 0x42e55d
inc eax
cmp eax, 0x253b
je 0x42e536
cmp byte [eax + 0x44a634], bl
jne 0x42e51a
cmp eax, 0x1db
jle 0x42e55d
mov esi, dword [ebp - 0x20]
jmp 0x42e546
mov esi, dword [ebp - 0x20]
push esi
call fcn.0042a9be
pop ecx
xor esi, 0x658c58b3
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a96a
add esp, 0xc
add esi, 0x1868704c
jmp 0x42e566
mov esi, dword [ebp - 0x20]
add esi, 0xd3e36b7f
xor esi, 0x33d31e3e
mov byte [ebp - 0x234], bl
push 0x5d
mov dword [ebp - 0x20], esi
mov eax, ebx
pop ecx
mov dword [ebp - 0x44], 0x5a
mov dword [ebp - 0x40], 0x1f
mov dword [ebp - 0x3c], 0xffffff2b
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 3
jl 0x42e58f
mov dword [ebp - 0x1bc], ecx
lea edi, [ebp - 0x74]
push 6
pop ecx
mov esi, 0x40200c
mov dword [ebp - 0x18], 0xa7644454
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xed92e67f
mov eax, ebx
mov dword [ebp - 0x10], 0x4c877de3
mov dword [ebp - 0xc], 0x7f60533f
movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 8], 0x8f9f60be
mov dword [ebp - 4], 0x4efd8420
and esi, 0x535280b7
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42e5dd
mov dword [ebp - 0x20], esi
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x1b8]
push 0x19
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x74]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
inc edi
mov byte [ebp + esi - 0x1b8], bl
cmp edi, 0x100
jb 0x42e5f9
mov esi, dword [ebp - 0x20]
xor eax, eax
mov ecx, eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
mov edx, 0x2de
movzx ebx, al
push 0x73
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp - 0x21], al
movzx eax, al
mov dword [ebp - 0x34], eax
add eax, ecx
movzx eax, al
mov dword [ebp - 0x48], eax
pop ecx
mov al, byte [ebp + eax - 0x1b8]
mov byte [ebp + ebx - 0x1b8], al
mov eax, 0x403270
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x185d
ja 0x42e696
movzx ecx, word [eax]
test ecx, ecx
jne 0x42e67a
and esi, 0x393c6240
jmp 0x42e6b1
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
add esp, 0xc
imul eax, esi, 0xd2994f31
imul esi, eax, 0x8fdebb5c
xor esi, 0x7f1d4bc8
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
mov ecx, dword [ebp - 0x48]
add esp, 0xc
mov al, byte [ebp - 0x21]
mov byte [ebp + ecx - 0x1b8], al
movzx eax, byte [ebp + ebx - 0x1b8]
add eax, dword [ebp - 0x34]
movzx eax, al
push 0x18
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + edi - 0x18]
mov byte [ebp + edi - 0x268], al
inc edi
pop eax
cmp edi, eax
jb 0x42e641
push 0x1d
pop eax
mov byte [ebp - 0x2a], al
xor ecx, ecx
mov eax, dword [0x401b30]
mov dword [ebp - 0x58], eax
mov ax, word [0x401b34]
mov word [ebp - 0x54], ax
mov eax, ecx
mov dword [ebp - 0x20], esi
mov byte [ebp - 0x250], cl
mov word [ebp - 0x2c], 0xef03
mov word [ebp - 0x29], 0x71d8
mov byte [ebp - 0x27], 0x99
mov dword [ebp - 0x1c], ecx
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42e737
mov edi, ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x1b8]
push 5
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x58]
add eax, dword [ebp - 0x1c]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x1c], ecx
mov al, byte [ebp + ecx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
inc edi
mov byte [ebp + ecx - 0x1b8], bl
cmp edi, 0x100
jb 0x42e748
xor eax, eax
mov esi, eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x1b8]
movzx edx, cl
lea eax, [esi + edx]
movzx esi, al
mov al, byte [ebp + esi - 0x1b8]
mov byte [ebp + ebx - 0x1b8], al
mov byte [ebp + esi - 0x1b8], cl
movzx eax, byte [ebp + ebx - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + edi - 0x2c]
mov byte [ebp + edi - 0x1f0], al
inc edi
cmp edi, 6
jb 0x42e791
mov esi, dword [ebp - 0x20]
xor ebx, ebx
push 5
mov byte [ebp - 0x1ea], bl
mov ecx, ebx
mov dword [ebp - 0x14], 0x15
mov eax, ebx
mov dword [ebp - 0x10], 0x50
mov dword [ebp - 0xc], 0x33
mov dword [ebp - 8], 0x61
mov dword [ebp - 4], 0xffffff07
pop edx
sub ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, edx
jl 0x42e816
push 0xe
pop eax
mov dword [ebp - 0xc], eax
movaps xmm1, xmm2
mov dword [ebp - 0x10], 0x22
xor esi, 0xa0b318d
mov dword [ebp - 8], 0x21
mov dword [ebp - 4], 0xffffffaf
movups xmm0, xmmword [ebp - 0x10]
push 0x3d
pop edi
psubd xmm1, xmm0
mov dword [ebp - 0x10], 4
movaps xmm0, xmm1
mov dword [ebp - 0xc], edi
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 8], 0xf
movups xmm0, xmm1
mov dword [ebp - 4], 0xffffff70
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x1cc], ecx
movd dword [ebp - 0x1c8], xmm1
mov ecx, ebx
movups xmm1, xmmword [ebp - 0x10]
push 0x29
pop edx
paddd xmm1, xmm2
mov dword [ebp - 0x40], 0x4f
movaps xmm0, xmm1
mov dword [ebp - 0x3c], 8
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x42
mov dword [ebp - 0x1c4], eax
imul eax, esi, 0x25cd1570
add edx, dword [ebp + ecx*4 - 0x40]
inc ecx
cmp ecx, 2
jl 0x42e8d2
push 0x5e
mov dword [ebp - 0x1c0], edx
mov ecx, ebx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], 0xffffff65
pop edx
add edx, dword [ebp + ecx*4 - 0x40]
inc ecx
cmp ecx, 2
jl 0x42e8f1
mov esi, 0x402068
mov dword [ebp - 0x34], edx
lea edi, [ebp - 0x44]
mov dword [ebp - 0x18], 0xcddc23b4
mov dword [ebp - 0x14], 0x6f37b6f6
mov ecx, ebx
mov dword [ebp - 0x10], 0xa0fe4117
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x83471e9d
mov dword [ebp - 8], 0x3bcf2a13
mov dword [ebp - 4], 0x483891d6
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + ecx - 0x1b8], cl
inc ecx
cmp ecx, 0x100
jb 0x42e938
xor eax, 0x8d9c5ce9
mov esi, ebx
mov dword [ebp - 0x1c], eax
xor edx, edx
mov bl, byte [ebp + esi - 0x1b8]
push 0xc
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1b8]
mov byte [ebp + esi - 0x1b8], al
inc esi
mov byte [ebp + edi - 0x1b8], bl
cmp esi, 0x100
jb 0x42e952
mov ebx, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x20], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
imul ebx, ebx, 0xe9198b60
movzx edi, al
mov eax, dword [ebp - 0x20]
push 0x18
mov cl, byte [ebp + edi - 0x1b8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x1b8], cl
movzx eax, byte [ebp + edi - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x284], al
inc esi
pop eax
cmp esi, eax
jb 0x42e99b
mov esi, 0x40312c
mov dword [ebp - 0x1c], ebx
lea edi, [ebp - 0x40]
mov byte [ebp - 0x2c], 3
push 7
xor ecx, ecx
mov dword [ebp - 0x2a], 0xc02ad488
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x2b], al
mov eax, ecx
mov byte [ebp - 0x26c], cl
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42ea26
mov esi, ecx
mov dl, byte [ebp + esi - 0x1b8]
mov eax, esi
push 7
pop ecx
and eax, ecx
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x40]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1b8]
mov byte [ebp + esi - 0x1b8], al
inc esi
mov byte [ebp + edi - 0x1b8], dl
cmp esi, 0x100
jb 0x42ea37
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov byte [ebp + ebx - 0x1b8], cl
movzx eax, byte [ebp + edi - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x1f8], al
inc esi
cmp esi, 6
jb 0x42ea7a
mov ebx, dword [ebp - 0x1c]
xor eax, eax
push 0x14
mov byte [ebp - 0x1f2], al
pop ecx
mov dword [ebp - 0x40], 0x3f
mov dword [ebp - 0x3c], 0xffffffad
add ecx, dword [ebp + eax*4 - 0x40]
inc eax
cmp eax, 2
jl 0x42eae6
mov eax, dword [0x402290]
mov esi, 0x403330
mov dword [ebp - 0x2c], eax
mov ax, word [0x402294]
push 0x66
mov dword [ebp - 0x1d0], ecx
mov ecx, esi
mov dword [ebp - 0x18], 0x294e7670
mov dword [ebp - 0x14], 0x40cf6608
mov dword [ebp - 0x10], 0xd56bad22
mov dword [ebp - 0xc], 0x28651654
mov dword [ebp - 8], 0x50a0efa1
mov dword [ebp - 4], 0xf49beb41
mov word [ebp - 0x28], ax
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x42eb56
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x42eb3c
jmp 0x42eb5c
and ebx, 0xc953b865
and ebx, 0xe873a134
sub esp, 0xc
mov edx, ebx
mov ecx, ebx
call fcn.0042a8e7
add esp, 0xc
mov edx, 0x265e
and dword [ebp - 0x1c], 0
mov eax, esi
push 0x66
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x6a8
ja 0x42eb95
movzx ecx, word [eax]
test ecx, ecx
jne 0x42eb7f
jmp 0x42ebaa
sub esp, 0xc
mov edx, ebx
mov ecx, ebx
call fcn.0042a8e7
add esp, 0xc
and ebx, 0xf61f3afa
imul eax, ebx, 0x14b6f9fa
mov esi, 0x27739041
sub esi, eax
xor ecx, ecx
mov eax, ecx
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42ebbb
mov edi, ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x1b8]
push 5
mov eax, edi
xor esi, 0x77d23775
pop ecx
div ecx
movzx ecx, bl
imul esi, esi, 0xe8d87f78
movzx eax, byte [ebp + edx - 0x2c]
add eax, dword [ebp - 0x1c]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x1c], ecx
mov al, byte [ebp + ecx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
inc edi
mov byte [ebp + ecx - 0x1b8], bl
cmp edi, 0x100
jb 0x42ebcc
xor eax, eax
mov edi, eax
mov edx, eax
mov ecx, eax
lea eax, [edx + 1]
movzx edx, al
mov al, byte [ebp + edx - 0x1b8]
movzx ebx, al
mov byte [ebp - 0x21], al
lea eax, [edi + ebx]
movzx edi, al
xor eax, eax
cmp byte [0x44a634], al
je 0x42ec5d
inc eax
cmp eax, 0xe1b
je 0x42ec57
cmp byte [eax + 0x44a634], 0
jne 0x42ec44
jmp 0x42ec5d
sub esi, 0x7829a435
mov al, byte [ebp + edi - 0x1b8]
xor esi, 0x14e65f0b
mov byte [ebp + edx - 0x1b8], al
mov al, byte [ebp - 0x21]
mov byte [ebp + edi - 0x1b8], al
movzx eax, byte [ebp + edx - 0x1b8]
add eax, ebx
movzx eax, al
push 0x18
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + ecx - 0x18]
mov byte [ebp + ecx - 0x2a0], al
inc ecx
pop eax
cmp ecx, eax
jb 0x42ec21
mov dword [ebp - 0x20], esi
lea edi, [ebp - 0x44]
mov esi, 0x4020d0
mov dword [ebp - 0x2c], 0xf47410ed
xor ecx, ecx
mov word [ebp - 0x28], 0x8e9d
mov byte [ebp - 0x288], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42eccf
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1b8]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1b8]
mov byte [ebp + esi - 0x1b8], al
inc esi
mov byte [ebp + edi - 0x1b8], bl
cmp esi, 0x100
jb 0x42ece0
xor eax, eax
mov edx, 0x15ce
push 0x66
mov dword [ebp - 0x1c], eax
mov ebx, eax
mov eax, 0x403330
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x42d
ja 0x42ed4a
movzx ecx, word [eax]
test ecx, ecx
jne 0x42ed31
mov esi, dword [ebp - 0x20]
jmp 0x42ed62
mov esi, dword [ebp - 0x20]
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
add esp, 0xc
xor esi, 0x3b7ccc5c
add esi, 0x603229c9
sub esp, 0xc
or esi, 0x5530da
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
add esp, 0xc
xor edi, edi
lea eax, [ebx + 1]
or esi, 0x5bc7a97b
movzx ebx, al
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp + ebx - 0x1b8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x1c], eax
mov al, byte [ebp + eax - 0x1b8]
mov byte [ebp + ebx - 0x1b8], al
mov eax, dword [ebp - 0x1c]
mov byte [ebp + eax - 0x1b8], cl
movzx eax, byte [ebp + ebx - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + edi - 0x2c]
mov byte [ebp + edi - 0x40], al
inc edi
cmp edi, 6
jb 0x42ed7f
xor ebx, ebx
mov dword [ebp - 0x30], 0x2a
push 0x3a
pop edx
mov byte [ebp - 0x3a], bl
mov ecx, ebx
mov dword [ebp - 0x2c], edx
mov eax, ebx
mov dword [ebp - 0x28], 0xffffff9c
sub ecx, dword [ebp + eax*4 - 0x30]
inc eax
cmp eax, 3
jl 0x42edf7
mov dword [ebp - 0x20], ecx
mov eax, ebx
mov dword [ebp - 0x30], 0x1f
mov dword [ebp - 0x2c], 0x52
mov dword [ebp - 0x28], 0xffffff55
add edx, dword [ebp + eax*4 - 0x30]
inc eax
cmp eax, 3
jl 0x42ee1b
push 5
mov dword [ebp - 0x1dc], edx
mov ecx, ebx
mov dword [ebp - 0x14], 0x56
mov eax, ebx
mov dword [ebp - 0x10], 6
mov dword [ebp - 0xc], 0x1f
mov dword [ebp - 8], 0x14
mov dword [ebp - 4], 0xffffff71
pop edx
sub ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, edx
jl 0x42ee55
push 0x27
mov dword [ebp - 0x1e0], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0x2c], 0x29
mov dword [ebp - 0x28], 0xffffffb0
add ecx, dword [ebp + eax*4 - 0x2c]
xor esi, 0xbd5f5a4a
inc eax
cmp eax, 2
jl 0x42ee77
mov dword [0x44a5dc], esi
mov dword [ebp - 0x58], ecx
call fcn.0042d611
mov ebx, eax
lea ecx, [ebp - 0x1e8]
push ebx
mov dword [ebp - 0x48], ebx
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x2d0]
call fcn.0041d4c4
call eax
mov ecx, dword [ebp - 0xb8]
neg ecx
cmp eax, ecx
jne 0x42f190
mov esi, 0x401ff0
mov dword [ebp - 0xb0], 0x96615d3c
lea edi, [ebp - 0x10]
mov dword [ebp - 0xac], 0x50fe7a7b
push 0xe
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0x88], al
mov ebx, ecx
mov dword [ebp - 0xa8], 0xe29fe0de
mov eax, ecx
mov dword [ebp - 0xa4], 0x83aa3800
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xa0], 0xbff2d7bc
mov dword [ebp - 0x9c], 0x78d4048b
mov dword [ebp - 0x98], 0xc7825d03
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x94], 0xb101d6c6
mov dword [ebp - 0x90], 0x564d8e4b
mov dword [ebp - 0x8c], 0x604f23ea
movsw word es:[edi], word [esi]
mov word [ebp - 0x87], 0xac89
mov byte [ebp - 0x85], 0xe1
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x42ef56
mov esi, dword [0x44a5dc]
mov edi, ecx
xor edx, edx
mov cl, byte [ebp + edi - 0x1b8]
mov eax, edi
mov byte [ebp - 0x21], cl
div dword [ebp - 0x50]
movzx ecx, cl
push 0x66
movzx eax, byte [ebp + edx - 0x10]
add eax, ebx
add ecx, eax
movzx ebx, cl
mov ecx, 0x403330
pop edx
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x42efbd
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x42efa3
jmp 0x42efc3
or esi, 0xb8119ca1
add esi, 0x7857274e
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a96a
mov al, byte [ebp - 0x21]
add esp, 0xc
inc edi
mov byte [ebp + ebx - 0x1b8], al
cmp edi, 0x100
jb 0x42ef6d
imul eax, esi, 0x56628e9f
mov dword [ebp - 0x1c], eax
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1b8]
mov byte [ebp + edi - 0x1b8], al
mov byte [ebp + ebx - 0x1b8], cl
movzx eax, byte [ebp + edi - 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1b8]
xor al, byte [ebp + esi - 0xb0]
mov byte [ebp + esi - 0x300], al
inc esi
cmp esi, 0x2c
jb 0x42effc
push 6
pop ecx
mov esi, 0x4022cc
mov dword [ebp - 0x50], 0x944f8dca
lea edi, [ebp - 0x74]
mov word [ebp - 0x4c], 0x1e90
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov byte [ebp - 0x2d4], dl
mov eax, edx
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x400], al
inc eax
cmp eax, 0x100
jb 0x42f076
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x400]
push 0x18
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x74]
add eax, edi
add ecx, eax
imul eax, dword [ebp - 0x1c], 0xb934e90d
movzx edi, cl
mov dword [ebp - 0x1c], eax
mov dword [0x44a5dc], eax
mov al, byte [ebp + edi - 0x400]
mov byte [ebp + esi - 0x400], al
inc esi
mov byte [ebp + edi - 0x400], bl
cmp esi, 0x100
jb 0x42f087
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x400]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x400]
mov byte [ebp + edi - 0x400], al
mov byte [ebp + ebx - 0x400], cl
movzx eax, byte [ebp + edi - 0x400]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x400]
xor al, byte [ebp + esi - 0x50]
mov byte [ebp + esi - 0xb8], al
inc esi
cmp esi, 6
jb 0x42f0db
mov ebx, dword [ebp - 0x48]
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x10], 0x60
mov dword [ebp - 0xc], 0x4e
mov dword [ebp - 8], 0x24
mov dword [ebp - 4], 0xfffffedf
movups xmm1, xmmword [ebp - 0x10]
mov byte [ebp - 0xb2], 0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x4f
push eax
push ebx
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x300]
call fcn.0041d4c4
call eax
lea ecx, [ebp - 0x214]
call fcn.0043430e
lea ecx, [ebp - 0x230]
mov esi, eax
call fcn.0043430e
lea ecx, [ebp - 0x24c]
mov edi, eax
call fcn.0043430e
xor edx, edx
mov dword [ebp - 0x1c], eax
mov eax, edx
mov ecx, 0x403270
inc eax
lea ecx, [ecx + 2]
cmp eax, 0x20c0
jg 0x42f1d8
cmp word [ecx], dx
jne 0x42f1c1
mov eax, dword [0x44a5dc]
jmp 0x42f1e2
mov eax, dword [0x44a5dc]
and eax, 0xf2b0aaaa
and eax, 0xf8440e76
mov edx, esi
or eax, 0x48040262
mov ecx, ebx
mov dword [0x44a5dc], eax
call fcn.00434db1
mov eax, dword [ebp - 0x1bc]
mov ecx, ebx
cmp dword [ebp + 8], eax
mov edx, dword [ebp - 0x1c]
cmove edx, edi
call fcn.00434db1
push dword [ebp - 0x34]
lea ecx, [ebp - 0x1f0]
push dword [ebp - 0x1c0]
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
push 0x40000000
push ebx
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x268]
call fcn.0041d4c4
call eax
mov dword [ebp + 8], eax
cmp eax, 2
je 0x42f29e
push dword [ebp - 0x1d0]
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp - 0x1d4]
lea ecx, [ebp - 0x1f8]
push dword [ebp - 0x1d8]
push eax
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x284]
call fcn.0041d4c4
call eax
push dword [ebp + 8]
lea ecx, [ebp - 0x40]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x2a0]
call fcn.0041d4c4
call eax
mov ecx, esi
call fcn.004348f7
push eax
push dword [ebp - 0x20]
push esi
call fcn.0043423a
mov ecx, edi
call fcn.004348f7
push eax
push dword [ebp - 0x1dc]
push edi
call fcn.0043423a
mov ecx, dword [ebp - 0x1c]
call fcn.004348f7
push eax
push dword [ebp - 0x1e0]
push ecx
call fcn.0043423a
mov ecx, ebx
call fcn.004348f7
push eax
push dword [ebp - 0x58]
push ebx
call fcn.0043423a
add esp, 0x30
mov ecx, esi
call fcn.0041d467
mov ecx, edi
call fcn.0041d467
mov ecx, dword [ebp - 0x1c]
call fcn.0041d467
mov ecx, ebx
call fcn.0041d467
pop edi
pop esi
pop ebx
leave
ret