Function at 0x42a210
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x6c
mov edi, eax
mov dword [esp + 0x48], edx
mov ebx, ecx
mov ebp, dword [0x52cfb4]
xor ebp, esp
mov esi, dword [edi + 0xa4]
mov dword [esp + 0x68], ebp
mov ebp, dword [edi + 0x120]
lea ecx, [esi + esi*8]
add ecx, esi
neg ecx
add ecx, 0x64
mov eax, dword [ebp + 0x14b18]
mov edx, dword [ebp + 0x14b1c]
sub ecx, dword [edi + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], ecx
call fcn.0042b400
mov dword [esp + 0x10], eax
mov esi, dword [0x4bd8a0]
movzx eax, word [0x4bd8a4]
mov dl, byte [0x4bd8a6]
mov dword [esp + 0x18], esi
mov word [esp + 0x1c], ax
mov byte [esp + 0x1e], dl
xor edx, edx
cmp dword [ebp + 0x64], 0
mov esi, dword [ebp + 0x38]
mov dword [esp + 0x50], esi
seta dl
mov esi, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
mov eax, dword [ebp + 0x20]
movzx edi, byte [ebp + 0xd4]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0x40], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x3c], edi
cmp edx, 3
jne 0x42a2c6
mov eax, dword [ebp + 0x70]
mov dword [esp + 4], eax
jmp 0x42a2e7
test edx, edx
jne 0x42a2d3
mov eax, dword [ebp + 0x7c]
mov dword [esp + 4], eax
jmp 0x42a2e7
mov ecx, dword [ebp + 0x14]
shl ecx, 6
mov edi, dword [ebp + 0x74]
mov eax, dword [ecx + edi*4 + 0x4c02e0]
mov dword [esp + 4], eax
cmp edx, 7
jae 0x42a2f6
movzx eax, byte [esp + edx + 0x18]
mov dword [esp], eax
jmp 0x42a2fd
mov dword [esp], 0
cmp dword [ebp + 0x84], 0
je 0x42a34c
mov ecx, 0x1fe
cmp dword [ebp + 0x14eb8], 0x1fe
cmovl ecx, dword [ebp + 0x14eb8]
mov edx, 0xfffffe02
cmp ecx, 0xfffffe02
cmovge edx, ecx
mov eax, edx
mov edi, edx
neg eax
or edi, 0xffff2c00
or eax, 0xffff2e00
movzx ecx, di
movzx eax, ax
test edx, edx
cmovge eax, ecx
mov dword [esp + 0x54], eax
jmp 0x42a354
mov dword [esp + 0x54], 0
cmp dword [ebp + 0x88], 0
je 0x42a390
pxor xmm0, xmm0
cvtss2sd xmm0, dword [ebp + 0x14eb4]
divsd xmm0, qword [0x4beb38]
mulsd xmm0, qword [0x4beb30]
addsd xmm0, qword [0x4beb28]
cvttsd2si eax, xmm0
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x58], eax
jmp 0x42a398
mov dword [esp + 0x58], 0
cmp esi, 0xffffffff
je 0x42a3bb
mov edi, dword [esp + 8]
xor eax, eax
mov ecx, 1
xor edx, edx
test edi, edi
cmovg edx, ecx
dec esi
cmp edi, esi
mov dword [esp + 0x5c], edx
cmovge ecx, eax
jmp 0x42a3c1
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov eax, dword [ebp + 0xb8]
cmp eax, 3
je 0x42a8c5
test eax, eax
je 0x42a405
cmp eax, 2
jne 0x42a3e3
mov dword [esp + 8], 2
jmp 0x42a40d
cmp eax, 1
jne 0x42a3fb
xor eax, eax
mov edx, 3
cmp eax, dword [ebp + 0x54]
adc edx, 0
mov dword [esp + 8], edx
jmp 0x42a40d
mov dword [esp + 8], 7
jmp 0x42a40d
mov dword [esp + 8], 1
mov esi, dword [ebp + 0x40]
cmp esi, 0x7d00
jg 0x42a422
mov dword [esp + 0xc], 0
jmp 0x42a445
cmp esi, 0xbb80
je 0x42a43d
mov eax, 3
mov edx, 1
cmovg edx, eax
mov dword [esp + 0xc], edx
jmp 0x42a445
mov dword [esp + 0xc], 2
mov eax, dword [ebp + 0xbc]
and eax, 0xfffffffe
cmp eax, 2
je 0x42a49b
cmp dword [esp + 0x50], 0xffffffff
je 0x42a8b6
cmp dword [ebp + 0x94], 0
je 0x42a470
cmp dword [ebp + 0x7c], 0x140
jl 0x42a49b
cmp dword [ebp + 0xe0], 0
jne 0x42a49b
cmp dword [ebp + 0xd8], 0
jne 0x42a49b
cmp dword [esp + 0x3c], 0
je 0x42a49b
cmp esi, 0x7d00
jle 0x42a49b
mov dword [esp + 0x64], 0
jmp 0x42a4a3
mov dword [esp + 0x64], 1
push 9
push dword [esp + 0x14]
xor edx, edx
lea esi, [ebx + 4]
movzx eax, word [ebp + 0x14efc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
test eax, eax
push esi
cmovle eax, edx
mov edx, eax
shr edx, 0x18
mov byte [ebx], dl
mov edx, eax
shr edx, 0x10
mov byte [ebx + 1], dl
mov edx, eax
shr edx, 8
mov byte [ebx + 2], dl
mov byte [ebx + 3], al
mov dword [esp + 0x24], ecx
call fcn.0049d3a0
mov ecx, dword [esp + 0x24]
add esp, 0xc
pxor xmm0, xmm0
mov edi, 0xff
cvtsi2sd xmm0, dword [esp + 0x50]
divsd xmm0, qword [0x4beb48]
movsd xmm1, qword [0x4beb28]
movsd xmm2, qword [0x4beb40]
addsd xmm1, xmm0
mov edx, dword [esp]
minsd xmm2, xmm1
mov byte [ebx + 0xd], dl
cvttsd2si edx, xmm2
movzx edx, dl
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], edx
mov byte [ebx + 0xe], dl
mov edx, eax
shr edx, 0x18
mov dword [esp + 0x14], edx
mov byte [ebx + 0xf], dl
mov edx, eax
shr edx, 0x10
mov dword [esp + 0x18], edx
mov byte [ebx + 0x10], dl
mov edx, eax
shr edx, 8
mov dword [esp + 0x1c], edx
mov byte [ebx + 0x11], dl
mov edx, dword [esp + 0x54]
mov byte [ebx + 0x14], dl
mov edx, dword [esp + 0x44]
shl edx, 5
add edx, dword [esp + 0x3c]
shl ecx, 6
mov esi, dword [esp + 0x5c]
add edx, ecx
shl esi, 7
mov byte [ebx + 0x12], al
mov eax, dword [esp + 0x54]
shr eax, 8
mov dword [esp + 0x20], eax
lea ecx, [edx + esi + 0x10]
mov edx, dword [esp + 4]
cmp edx, 0xff
mov dword [esp + 0x24], ecx
mov byte [ebx + 0x17], cl
cmovg edx, edi
mov byte [ebx + 0x13], al
xor eax, eax
mov ecx, dword [esp + 0x4c]
mov byte [ebx + 0x15], al
mov byte [ebx + 0x16], al
mov eax, ecx
mov dword [esp + 4], edx
mov byte [ebx + 0x18], dl
shr eax, 4
mov dword [esp + 0x28], eax
mov byte [ebx + 0x19], al
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x38]
mov esi, eax
shl ecx, 4
shr esi, 8
lea edx, [edi + edx*4]
add ecx, esi
mov esi, dword [esp + 0xc]
shl esi, 6
mov byte [ebx + 0x1b], al
add edx, esi
mov eax, dword [esp + 0x64]
shl eax, 5
add edx, eax
mov byte [ebx + 0x1a], cl
mov byte [ebx + 0x1c], dl
mov byte [ebx + 0x1d], 0
mov eax, dword [ebp + 0x68]
mov dword [esp + 0x2c], edx
mov edx, eax
mov dword [esp + 0x30], eax
mov byte [ebx + 0x1f], al
shr edx, 8
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov byte [ebx + 0x1e], dl
mov edx, eax
shr edx, 0x18
mov byte [ebx + 0x20], dl
mov edx, eax
shr edx, 0x10
mov byte [ebx + 0x21], dl
mov edx, eax
shr edx, 8
mov byte [ebx + 0x22], dl
mov edx, dword [esp + 0x60]
mov byte [ebx + 0x25], dl
mov byte [ebx + 0x23], al
mov eax, edx
movzx edx, byte [ebx + 1]
shl edx, 8
movzx ebp, byte [ebx]
or edx, ebp
movzx esi, word [esp + 0x8c]
xor esi, edx
mov ebp, esi
and ebp, 0xff
shr esi, 8
movzx edx, byte [ebx + 2]
shr eax, 8
mov byte [ebx + 0x24], al
movzx eax, word [esi*2 + 0x4be4c0]
movzx esi, byte [ebx + 3]
movzx edi, word [ebp*2 + 0x4be6c0]
movzx ebp, word [edx*2 + 0x4be2c0]
xor edi, eax
movzx edx, byte [ebx + 4]
xor edi, ebp
movzx eax, word [esi*2 + 0x4be0c0]
xor edi, eax
movzx esi, byte [ebx + 5]
movzx ebp, word [edx*2 + 0x4bdec0]
xor edi, ebp
movzx edx, byte [ebx + 6]
movzx eax, word [esi*2 + 0x4bdcc0]
xor edi, eax
movzx esi, byte [ebx + 7]
movzx ebp, word [edx*2 + 0x4bdac0]
xor edi, ebp
movzx ebp, byte [ebx + 9]
shl ebp, 8
movzx edx, byte [ebx + 8]
or ebp, edx
movzx eax, word [esi*2 + 0x4bd8c0]
xor edi, eax
xor edi, ebp
mov esi, edi
and esi, 0xff
shr edi, 8
movzx edx, byte [ebx + 0xa]
movzx ecx, cl
movzx esi, word [esi*2 + 0x4be6c0]
movzx edi, word [edi*2 + 0x4be4c0]
xor esi, edi
movzx edi, byte [ebx + 0xb]
movzx ebp, word [edx*2 + 0x4be2c0]
xor esi, ebp
movzx edx, byte [ebx + 0xc]
movzx eax, word [edi*2 + 0x4be0c0]
xor esi, eax
mov eax, dword [esp]
movzx ebp, word [edx*2 + 0x4bdec0]
xor esi, ebp
mov edx, dword [esp + 0x10]
movzx edi, word [eax*2 + 0x4bdcc0]
xor esi, edi
mov eax, dword [esp + 0x14]
movzx ebp, word [edx*2 + 0x4bdac0]
xor esi, ebp
mov edx, dword [esp + 0x1c]
shl edx, 8
movzx ebp, byte [esp + 0x18]
or edx, ebp
movzx edi, word [eax*2 + 0x4bd8c0]
xor esi, edi
xor esi, edx
movzx edx, si
movzx esi, dl
shr edx, 8
movzx edi, byte [esp + 0x58]
movzx ebp, word [esi*2 + 0x4be6c0]
movzx esi, word [edx*2 + 0x4be4c0]
xor ebp, esi
mov edx, dword [esp + 0x20]
movzx eax, word [edi*2 + 0x4be2c0]
xor ebp, eax
movzx edi, byte [esp + 0x54]
movzx esi, word [edx*2 + 0x4be0c0]
xor ebp, esi
movzx edx, byte [esp + 0x24]
movzx eax, word [edi*2 + 0x4bdec0]
xor ebp, eax
mov eax, dword [esp + 0x28]
shl eax, 8
movzx edi, byte [esp + 4]
or eax, edi
movzx esi, word [edx*2 + 0x4bd8c0]
xor ebp, esi
xor ebp, eax
movzx esi, bp
mov ebp, esi
and ebp, 0xff
shr esi, 8
movzx eax, byte [esp + 0x2c]
movzx edx, word [ebp*2 + 0x4be6c0]
movzx ebp, word [esi*2 + 0x4be4c0]
xor edx, ebp
movzx esi, byte [esp + 0x38]
movzx ebp, word [ecx*2 + 0x4be2c0]
xor edx, ebp
movzx ebp, byte [esp + 0x34]
movzx edi, word [esi*2 + 0x4be0c0]
xor edx, edi
movzx ecx, word [eax*2 + 0x4bdec0]
xor edx, ecx
movzx edi, byte [esp + 0x30]
movzx esi, word [ebp*2 + 0x4bdac0]
xor edx, esi
movzx eax, word [edi*2 + 0x4bd8c0]
xor edx, eax
xor eax, eax
mov esi, edx
movzx edx, dl
movzx ecx, byte [ebx + eax*2 + 0x20]
xor edx, ecx
shr esi, 8
movzx ecx, byte [ebx + eax*2 + 0x21]
inc eax
movzx ebp, word [edx*2 + 0x4bd8c0]
xor esi, ebp
movzx edi, si
mov edx, edi
and edi, 0xff
xor edi, ecx
shr edx, 8
movzx ebp, word [edi*2 + 0x4bd8c0]
xor edx, ebp
cmp eax, 3
jb 0x42a825
lea ecx, [eax + eax + 1]
lea eax, [ecx - 1]
cmp eax, 6
jae 0x42a888
mov eax, edx
movzx edx, dl
movzx ecx, byte [ebx + ecx + 0x1f]
xor edx, ecx
shr eax, 8
movzx edx, word [edx*2 + 0x4bd8c0]
xor edx, eax
mov eax, edx
shr eax, 8
mov byte [ebx + 0x26], al
mov byte [ebx + 0x27], dl
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x68], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x42a8b1
add esp, 0x6c
pop ebp
pop ebx
pop edi
pop esi
ret
call fcn.00497ce0
cmp dword [ebp + 0x3c], 0xffffffff
je 0x42a49b
jmp 0x42a45e
mov dword [esp + 8], 0
jmp 0x42a40d