Function at 0x42a730
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov eax, dword [0x450700]
mov dword [esp + 0x14], 0x4105472b
mov dword [esp + 0x18], 0x4dd243d0
mov dword [esp + 0x1c], 0x49ed4f00
mov dword [esp + 0x20], 0xb5e94bd4
mov dword [esp + 0x24], 0xb1b6b7db
mov word [esp + 0x28], 0
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x64]
cmp ecx, 0x15
ja 0x42a7c6
nop
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x64]
movzx edx, byte [esp + edx + 0x14]
mov esi, ecx
xor esi, 0xd8455571
and ecx, 0xd8455571
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xcb
mov edx, dword [esp + 0x64]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
cmp ecx, 0x16
jb 0x42a780
lea edi, [esp + 0x60]
lea esi, [esp + 0x14]
push edi
push 0
push 0
push 9
push esi
push 0
call eax
mov ebx, dword [esp + 0x60]
test ebx, ebx
jns 0x42a7e9
mov eax, 0xffffffff
jmp 0x42a7ec
lea eax, [ebx + ebx]
push eax
call fcn.0040c990
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [0x450700]
mov dword [esp + 0x14], 0x89558b77
mov dword [esp + 0x18], 0x85368738
mov dword [esp + 0x1c], 0x813d8358
mov dword [esp + 0x20], 0x9d219f0c
mov dword [esp + 0x24], 0x999a9b67
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x64]
cmp ecx, 0x16
ja 0x42a897
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x64]
movzx edx, byte [esp + edx + 0x14]
add ecx, 0x36216363
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
mov edx, ecx
xor edx, 0xef
and ecx, 0x10
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 0x64]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
cmp ecx, 0x17
jb 0x42a850
push edi
push ebx
push dword [esp + 0x54]
push 9
push esi
push 0
call eax
mov dword [esp + 0x14], 0xcf57c98c
mov dword [esp + 0x18], 0xc3a5cd5b
mov dword [esp + 0x1c], 0xc750c153
mov dword [esp + 0x20], 0xfbfac5a0
lea edx, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x64]
cmp eax, 0x13
ja 0x42a934
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
movzx ecx, byte [esp + ecx + 0x14]
mov esi, eax
xor esi, 0xee045052
and eax, 0xee045052
lea eax, [esi + eax*2]
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x66
mov ecx, dword [esp + 0x64]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0x64]
mov eax, dword [esp + 0x64]
cmp eax, 0x14
jb 0x42a8f0
lea eax, [esp + 0xd4]
lea esi, [esp + 0x14]
mov ecx, 4
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xe4]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x14], 0x4fd7490c
mov dword [esp + 0x18], 0x43e54ddb
mov dword [esp + 0x1c], 0x47d041d3
mov dword [esp + 0x20], 0xbbfd45e0
mov dword [esp + 0x24], 0xbf2cb919
mov dword [esp + 0x28], 0xb324bd1d
mov dword [esp + 0x2c], 0xb7b6b139
mov dword [esp + 0x7c], 0
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x1b
ja 0x42a9f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
movzx edx, byte [esp + edx + 0x14]
mov esi, ecx
not esi
or esi, 0xd114bf2
add esi, ecx
xor ecx, 0x8d114bf2
lea ecx, [ecx + esi*2]
add ecx, 2
xor ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x64]
add cl, 0x46
mov edx, dword [esp + 0x7c]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x1c
jb 0x42a9b0
lea edx, [esp + 0xb8]
lea esi, [esp + 0x14]
mov edi, edx
mov ecx, 7
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xd4]
lea esi, [esp + 0x30]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x14], 0x61fd67d8
mov dword [esp + 0x18], 0x5dff63ed
mov dword [esp + 0x1c], 0x59cc5fcd
mov dword [esp + 0x20], 0x55ea5bc4
mov dword [esp + 0x24], 0x519457f8
lea ebx, [esp + 0x28]
mov word [esp + 0x28], 0x5350
mov dword [esp + 0x2a], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x19
ja 0x42aac1
nop
mov ecx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x14]
mov edi, ecx
xor edi, 0x27125c19
and ecx, 0x27125c19
lea ecx, [edi + ecx*2]
lea edi, [ecx + esi]
and ecx, esi
mov esi, edi
not esi
and esi, ecx
add esi, ecx
not ecx
and ecx, edi
sub ecx, esi
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x7c]
add cl, 0x83
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x14], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x1a
jb 0x42aa70
lea esi, [esp + 0x64]
lea ebp, [esp + 0x14]
mov edi, esi
mov ecx, 5
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
lea edi, [esp + 0x78]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], 0
mov eax, dword [case.0x429f97.63]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop