Function at 0x42a1d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe8
mov eax, dword [0x44f124]
mov dword [esp + 0xc], 0x43834165
mov dword [esp + 0x10], 0x47d645d4
mov dword [esp + 0x14], 0x4bab498c
mov dword [esp + 0x18], 0x4faf4dd8
mov dword [esp + 0x1c], 0x73727155
mov byte [esp + 0x20], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x14
ja 0x42a27e
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0xc]
mov esi, ecx
xor esi, 0xaf6f3590
and ecx, 0x2f6f3590
lea esi, [esi + ecx*2]
lea ecx, [esi + edx]
mov edi, edx
not edi
or edi, esi
add edx, edi
inc edx
sub ecx, edx
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0xbc], edx
mov ecx, dword [esp + 0xbc]
add cl, 0x30
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x15
jb 0x42a220
lea edi, [esp + 0x7c]
lea esi, [esp + 0xc]
push edi
push 0
push 0
push 9
push esi
push 0
call eax
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x42a2a1
mov eax, 0xffffffff
jmp 0x42a2a4
lea eax, [ebx + ebx]
push eax
call fcn.0040c4b0
add esp, 4
mov dword [esp + 0x58], eax
mov eax, dword [0x44f124]
mov dword [esp + 0xc], 0x915d9f7b
mov dword [esp + 0x10], 0x95029300
mov dword [esp + 0x14], 0x89359750
mov dword [esp + 0x18], 0x8d298b1c
mov dword [esp + 0x1c], 0x818e8f6b
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x13
ja 0x42a33c
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0xc]
mov ebp, ecx
xor ebp, 0xbf162f65
and ecx, 0x3f162f65
lea ecx, [ecx*2]
add ecx, ebp
xor ecx, edx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0xbc]
add cl, 7
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x14
jb 0x42a2f0
push edi
push ebx
push dword [esp + 0x60]
push 9
push esi
push 0
call eax
mov dword [esp + 0xc], 0xc95dcb70
mov dword [esp + 0x10], 0xc55bc745
mov dword [esp + 0x14], 0xc14cc355
mov dword [esp + 0x18], 0xbdbebf5c
lea edx, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 0x11
ja 0x42a3e9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
movzx ecx, byte [esp + ecx + 0xc]
lea esi, [eax + eax]
and esi, 0x9d1fc166
mov edi, eax
xor edi, 0x31701f4c
mov ebx, eax
or ebx, 0x4e8fe0b3
and ebx, edi
sub eax, esi
lea eax, [eax + ebx*2]
add eax, 0xce8fe0b3
xor eax, ecx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xbc]
add al, 0x81
mov ecx, dword [esp + 0x60]
mov byte [esp + ecx + 0xc], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 0x12
jb 0x42a390
lea eax, [esp + 0xd8]
lea esi, [esp + 0xc]
mov edi, eax
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xe8]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0x71c57fb8
mov dword [esp + 0x10], 0x75d773c5
mov dword [esp + 0x14], 0x49c477c5
mov dword [esp + 0x18], 0x4d8f4bec
mov dword [esp + 0x1c], 0x41f04fef
mov dword [esp + 0x20], 0x45f043e3
mov dword [esp + 0x24], 0x594647cf
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1b
ja 0x42a4a6
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0xc]
mov esi, ecx
xor esi, 0x7c676095
and ecx, 0xfc676095
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0xbc]
add cl, 0x17
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1c
jb 0x42a460
lea edx, [esp + 0xbc]
lea esi, [esp + 0xc]
mov ecx, 7
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xd8]
lea esi, [esp + 0x28]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0xc], 0x4fd7490c
mov dword [esp + 0x10], 0x43e54ddb
mov dword [esp + 0x14], 0x47d041d3
mov dword [esp + 0x18], 0xbb0a45e0
mov dword [esp + 0x1c], 0xbff8b90c
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0xbdbc
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x17
ja 0x42a580
nop
nop
nop
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x8c]
movzx esi, byte [esp + esi + 0xc]
mov edi, ecx
xor edi, 0x398e2372
and ecx, 0x398e2372
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 + 0x60], ecx
mov ecx, dword [esp + 0x60]
add cl, 0xc6
mov esi, dword [esp + 0x8c]
mov byte [esp + esi + 0xc], cl
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x18
jb 0x42a520
lea esi, [esp + 0x60]
lea ebp, [esp + 0xc]
mov edi, esi
mov ecx, 5
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
lea edi, [esp + 0x74]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov ebp, dword [esp + 0x58]
mov eax, ebp
add eax, 2
mov dword [esp + 0x78], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x80], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44b524]
movsd dword es:[edi], dword [esi]