Function at 0x42a0c3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x478b78]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
xor esi, esi
mov dword [ebp - 0x28], eax
push edi
test dword [ebx + 0x2c], 0x2000
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], esi
jne 0x42a2d6
push eax
call dword [0x47820c]
push 5
call dword [0x4781c4]
push eax
push dword [ebp - 0x28]
call dword [0x478210]
push dword [edi + 0xc]
mov eax, dword [edi + 4]
push dword [edi + 8]
add eax, dword [ebp + 0x20]
push eax
push dword [edi]
lea eax, [ebp - 0x24]
push eax
call dword [0x47c000]
cmp dword [ebp + 0x24], esi
je 0x42a136
mov ecx, dword [edi + 4]
add ecx, dword [ebp + 0x24]
jmp 0x42a139
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x84]
add dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x80]
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebx + 0x88]
sub ecx, dword [ebx + 0x8c]
test dword [ebx + 0x2c], 0x1000
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
je 0x42a17b
test byte [ebx + 0xf4], 0x10
jne 0x42a17b
add ecx, dword [ebx + 0x100]
mov dword [ebp - 0x18], ecx
xor edx, edx
inc edx
cmp dword [ebp + 0x2c], esi
jne 0x42a202
mov ecx, dword [ebx + 0x130]
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test ecx, ecx
jle 0x42a1d2
cmp ecx, 3
jle 0x42a1b2
cmp ecx, 4
jne 0x42a1d2
xor esi, esi
cmp dword [ebx + 0x70], edx
jne 0x42a1ea
cmp dword [ebx + 0x13c], esi
je 0x42a1c5
jmp 0x42a1c1
xor esi, esi
cmp dword [ebx + 0x70], edx
jne 0x42a1ea
cmp dword [ebx + 0x13c], esi
jle 0x42a1c5
dec eax
mov dword [ebp - 0xc], eax
cmp dword [ebx + 0x140], esi
jle 0x42a1ea
dec dword [ebp - 8]
jmp 0x42a1ea
mov eax, dword [ebx + 0x70]
cdq
sub eax, edx
sar eax, 1
neg eax
push eax
push eax
lea eax, [ebp - 0x14]
push eax
call dword [0x47c030]
xor esi, esi
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x28]
call dword [0x4781e4]
xor edx, edx
inc edx
mov eax, dword [ebx + 0x130]
cmp eax, edx
je 0x42a541
cmp eax, 2
je 0x42a493
cmp eax, 3
je 0x42a3d0
cmp eax, 4
je 0x42a2e9
jle 0x42a2b2
cmp eax, 8
jle 0x42a2ac
cmp eax, 9
jne 0x42a2b2
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
push edx
push dword [ebx + 0x134]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call 0x479377
push eax
push dword [ebx + 0x70]
xor esi, esi
push esi
call 0x479309
push esi
push dword [ebx + 0x138]
mov edi, eax
mov dword [ebp - 0x2c], edi
call 0x479377
push eax
push dword [ebx + 0x78]
push esi
call 0x479309
push dword [ebx + 0x140]
mov esi, eax
lea eax, [ebp - 0x14]
push dword [ebx + 0x13c]
push eax
call dword [0x47c020]
push 1
push dword [ebp + 0x2c]
lea eax, [ebp - 0x14]
push dword [ebp + 0x10]
push esi
push edi
push dword [ebx + 0x70]
push eax
push ebx
push dword [ebp - 0x28]
call fcn.00428322
jmp 0x42a2b4
mov dword [0x47cbac], edx
xor esi, esi
push 0xffffffffffffffff
push dword [ebp - 0x28]
call dword [0x478204]
mov eax, dword [ebp - 0x2c]
mov edi, dword [0x4781e0]
test eax, eax
je 0x42a2cf
push eax
call edi
test esi, esi
je 0x42a2d6
push esi
call edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call 0x483b80
mov esp, ebp
pop ebp
ret 0x28
push edx
push dword [ebx + 0x134]
call 0x479377
push eax
push dword [ebx + 0x70]
push esi
call 0x479309
mov ecx, dword [ebx + 0x13c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x140]
cdq
mov edi, eax
mov eax, ecx
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
cmovg edi, eax
mov dword [ebp - 0x40], edi
test ecx, ecx
jle 0x42a331
mov dword [ebp - 0x38], 1
jmp 0x42a33f
xor ecx, ecx
cmp dword [ebx + 0x13c], ecx
setl cl
mov dword [ebp - 0x38], ecx
mov eax, esi
mov dword [ebp - 0x30], eax
test edi, edi
jle 0x42a2b2
mov esi, dword [ebp - 0x28]
push eax
push edi
push dword [ebx + 0x140]
push esi
call 0x479917
push dword [ebp - 0x30]
mov ebx, eax
mov eax, dword [ebp - 0x34]
push edi
push dword [eax + 0x13c]
push esi
call 0x479917
lea esi, [ebp - 0x24]
mov dword [ebp - 0x3c], eax
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x14]
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
push esi
push eax
call dword [0x47c020]
cmp dword [ebp - 0x38], esi
je 0x42a3a0
mov eax, dword [ebp - 0x3c]
cdq
xor eax, edx
sub eax, edx
add dword [ebp - 0xc], eax
sub dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x14]
push 1
push dword [ebp + 0x2c]
push esi
push esi
push dword [ebp - 0x2c]
push dword [ebx + 0x70]
push eax
push ebx
push dword [ebp - 0x28]
call fcn.00428322
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, edi
jl 0x42a34c
jmp 0x42a2b4
push edx
push dword [ebx + 0x134]
call 0x479377
push eax
push dword [ebx + 0x70]
push esi
call 0x479309
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x140]
cdq
mov edi, eax
mov eax, dword [ebx + 0x13c]
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
cmovg edi, eax
mov eax, esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x30], eax
test edi, edi
jle 0x42a2b2
mov esi, dword [ebp - 0x28]
push eax
push edi
push dword [ebx + 0x140]
push esi
call 0x479917
push dword [ebp - 0x30]
mov dword [ebp - 0x40], eax
push edi
push dword [ebx + 0x13c]
push esi
call 0x479917
push dword [ebp - 0x40]
lea esi, [ebp - 0x24]
mov ebx, eax
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
push esi
push eax
call dword [0x47c020]
push 1
push dword [ebp + 0x2c]
mov eax, ebx
mov ebx, dword [ebp - 0x34]
push esi
push esi
push dword [ebp - 0x2c]
cdq
push dword [ebx + 0x70]
xor eax, edx
sub eax, edx
add dword [ebp - 0x14], eax
sub dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push eax
push ebx
push dword [ebp - 0x28]
call fcn.00428322
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, edi
jl 0x42a416
jmp 0x42a2b4
push edx
push dword [ebx + 0x134]
call 0x479377
push eax
push dword [ebx + 0x70]
push esi
call 0x479309
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x140]
cdq
mov ecx, eax
mov eax, dword [ebx + 0x13c]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
cmovg ecx, eax
mov eax, esi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
test ecx, ecx
jle 0x42a2b2
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
push eax
push ecx
push dword [ebx + 0x140]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x28]
push edi
call 0x479917
push dword [ebp - 0x34]
mov esi, eax
push dword [ebp - 0x38]
push dword [ebx + 0x13c]
push edi
call 0x479917
push esi
push eax
lea eax, [ebp - 0x14]
push eax
call dword [0x47c020]
push 1
push dword [ebp + 0x2c]
xor esi, esi
lea eax, [ebp - 0x14]
push esi
push esi
push dword [ebp - 0x2c]
push dword [ebx + 0x70]
push eax
push ebx
push edi
call fcn.00428322
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, ecx
jl 0x42a4d9
jmp 0x42a2b4
mov eax, dword [ebx + 0x13c]
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test eax, eax
jle 0x42a563
mov ecx, dword [ebx + 0x70]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
jmp 0x42a571
jns 0x42a575
mov eax, dword [ebx + 0x70]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
neg ecx
xor esi, esi
jmp 0x42a579
xor esi, esi
mov ecx, esi
mov edi, dword [ebx + 0x140]
test edi, edi
jle 0x42a591
mov edi, dword [ebx + 0x70]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
sub edi, eax
jmp 0x42a5a3
jns 0x42a5a1
mov eax, dword [ebx + 0x70]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
neg edi
jmp 0x42a5a3
mov edi, esi
mov eax, dword [ebx + 0x140]
add eax, edi
push eax
mov eax, dword [ebx + 0x13c]
add eax, ecx
push eax
lea eax, [ebp - 0x14]
push eax
call dword [0x47c020]
push 1
push dword [ebx + 0x134]
call 0x479377
cmp dword [0x49da24], 0
je 0x42a5ee
cmp dword [ebp + 0x28], 0
jne 0x42a5ee
cmp dword [0x49da1c], 0
jne 0x42a5ee
push eax
push dword [ebp - 0x28]
call dword [0x4781e8]
movsd xmm0, qword [ebx + 0x124]
push 1
push dword [ebx + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
push ecx
push ecx
movsd qword [esp], xmm0
push dword [ebp + 0x2c]
push dword [ebp - 0x28]
call fcn.00427964
jmp 0x42a2b4