Function at 0x4234b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
mov dword [esp + 0x18], edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
cmp edx, 0x20
ja 0x423668
cmp edx, 0x10
ja 0x4234de
call fcn.00422fa0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 4]
lea eax, [edx + edx]
xor esi, esi
add eax, 0x2f90404f
mov dword [esp + 0x18], eax
mov eax, dword [edi]
adc esi, 0x9ae16a3b
push 0xb492b66f
push 0xbe98f273
bswap eax
bswap ecx
push eax
push ecx
mov dword [esp + 0x40], esi
call fcn.0046f360
mov dword [esp + 0x34], edx
mov edi, eax
mov edx, dword [esp + 0x14]
push esi
push dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
bswap eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
bswap ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + eax - 8]
mov eax, dword [edx + eax - 4]
bswap ecx
bswap eax
push ecx
push eax
call fcn.0046f360
mov ecx, dword [esp + 0x20]
mov esi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], esi
mov eax, dword [edx + ecx - 0x10]
mov ecx, dword [edx + ecx - 0xc]
mov edx, dword [esp + 0x28]
bswap ecx
bswap eax
mov dword [esp + 0x3c], ecx
mov ecx, edx
add ecx, 0x2f90404f
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
adc eax, 0x9ae16a3b
mov dword [esp + 0x14], ecx
add edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x1c]
adc edx, dword [esp + 0x34]
shl dword [esp + 0x14], 0xe
shrd ecx, eax, 0x12
mov dword [esp + 0x1c], edx
xor edx, edx
or edx, ecx
shr eax, 0x12
mov ecx, dword [esp + 0x14]
or ecx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
add eax, edx
adc ecx, esi
add eax, edi
mov dword [esp + 0x20], eax
adc ecx, dword [esp + 0x34]
xor esi, esi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
mov edi, ecx
shld ecx, eax, 0x15
shr edi, 0xb
shl eax, 0x15
or edi, eax
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x24]
or esi, ecx
mov ecx, edx
xor eax, eax
shrd edx, edi, 0x1e
push 0x9ae16a3b
shl ecx, 2
or eax, edx
shr edi, 0x1e
or ecx, edi
mov edi, dword [esp + 0x3c]
push 0x2f90404f
push dword [esp + 0x34]
add edi, eax
push dword [esp + 0x48]
adc esi, ecx
call fcn.0046f360
push dword [esp + 0x30]
add edi, eax
push dword [esp + 0x1c]
adc esi, edx
xor edi, dword [esp + 0x28]
xor esi, dword [esp + 0x1c]
push esi
push edi
call fcn.0046f360
mov edi, dword [esp + 0x30]
xor ecx, ecx
push edi
push dword [esp + 0x1c]
mov esi, edx
xor ecx, edx
xor ecx, dword [esp + 0x1c]
shr esi, 0xf
xor esi, eax
xor esi, dword [esp + 0x28]
push ecx
push esi
call fcn.0046f360
push edi
push dword [esp + 0x1c]
jmp 0x423af7
cmp edx, 0x40
ja 0x423678
call fcn.00423270
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + edx - 0x24]
mov eax, dword [edi + edx - 0x28]
mov esi, dword [edi + edx - 0x38]
bswap ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + edx - 0x10]
bswap eax
bswap ecx
mov dword [esp + 0x2c], eax
mov eax, dword [edi + edx - 0xc]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + edx - 0x34]
bswap eax
bswap ecx
add ecx, eax
mov eax, dword [esp + 0x14]
bswap esi
adc esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], esi
mov esi, dword [edi + edx - 0x18]
mov edi, dword [edi + edx - 0x14]
mov edx, dword [eax + edx - 0x30]
mov eax, dword [eax + ecx - 0x2c]
bswap eax
add ecx, eax
mov eax, 0
bswap edx
push 0x9ddfea08
adc eax, edx
bswap esi
push 0xeb382d69
xor eax, esi
mov dword [esp + 0x44], esi
bswap edi
xor ecx, edi
push eax
push ecx
call fcn.0046f360
xor ecx, ecx
mov esi, edx
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor ecx, dword [esp + 0x40]
xor esi, eax
push 0xeb382d69
push ecx
xor esi, edi
push esi
call fcn.0046f360
push 0x9ddfea08
mov esi, edx
xor ecx, ecx
push 0xeb382d69
xor ecx, edx
shr esi, 0xf
xor esi, eax
push ecx
push esi
call fcn.0046f360
mov esi, dword [esp + 0x20]
mov ecx, edx
mov edi, dword [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x3c], ecx
lea ecx, [esi - 0x40]
push 0
mov dword [esp + 0x3c], eax
add ecx, edi
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.004231a0
add esp, 0x14
movups xmm0, xmmword [eax]
push dword [esp + 0x2c]
movups xmmword [esp + 0x54], xmm0
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add ecx, 0xbe98f273
adc eax, 0xb492b66f
push eax
push ecx
lea eax, [esp + 0x50]
lea ecx, [esi - 0x20]
add ecx, edi
push eax
call fcn.004231a0
mov esi, dword [esp + 0x28]
add esp, 0x14
mov edi, dword [edi]
bswap edi
movups xmm0, xmmword [eax]
mov esi, dword [esi + 4]
push 0xb492b66f
push 0xbe98f273
push dword [esp + 0x34]
movups xmmword [esp + 0x4c], xmm0
bswap esi
push dword [esp + 0x34]
call fcn.0046f360
mov ecx, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x24], eax
adc edx, edi
mov edi, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x28], edx
and ecx, 0xffffffc0
add edi, 0x30
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], edi
mov edx, dword [edi - 0x24]
mov esi, dword [edi - 0x28]
bswap edx
add edx, dword [esp + 0x50]
bswap esi
adc esi, dword [esp + 0x54]
add edx, dword [esp + 0x1c]
push 0xb492b66f
adc esi, dword [esp + 0x1c]
add edx, dword [esp + 0x28]
push 0xbe98f273
adc esi, dword [esp + 0x30]
xor eax, eax
mov ecx, esi
shld esi, edx, 0x1b
shr ecx, 5
shl edx, 0x1b
or eax, esi
or ecx, edx
push eax
push ecx
call fcn.0046f360
mov esi, dword [esp + 0x14]
mov edi, dword [edi]
bswap edi
mov dword [esp + 0x2c], eax
mov esi, dword [esi + 4]
bswap esi
add esi, dword [esp + 0x58]
push 0xb492b66f
adc edi, dword [esp + 0x60]
add esi, dword [esp + 0x20]
push 0xbe98f273
adc edi, dword [esp + 0x20]
xor eax, eax
mov ecx, edi
mov dword [esp + 0x28], edx
shld edi, esi, 0x16
shr ecx, 0xa
or eax, edi
shl esi, 0x16
or ecx, esi
push eax
push ecx
call fcn.0046f360
mov edi, eax
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
push 0xb492b66f
push 0xbe98f273
mov ecx, dword [eax - 4]
mov esi, dword [eax - 8]
bswap ecx
add ecx, dword [esp + 0x58]
bswap esi
adc esi, dword [esp + 0x5c]
add edi, ecx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x4c]
adc edx, esi
mov esi, dword [esp + 0x48]
mov ecx, edi
add esi, dword [esp + 0x38]
mov dword [esp + 0x20], edx
adc ecx, dword [esp + 0x3c]
xor eax, eax
mov edx, ecx
shld ecx, esi, 0x1f
shr edx, 1
shl esi, 0x1f
or eax, ecx
or edx, esi
push eax
push edx
call fcn.0046f360
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x28], edx
adc edi, dword [esp + 0x20]
push edi
push eax
push 0xb492b66f
push 0xbe98f273
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.0046f360
mov edi, dword [esp + 0x1c]
push edx
push eax
lea eax, [esp + 0x70]
lea ecx, [edi - 0x30]
push eax
call fcn.004231a0
mov ecx, dword [edi - 0x20]
add esp, 0x14
bswap ecx
movups xmm0, xmmword [eax]
mov eax, dword [edi - 0x1c]
bswap eax
add eax, dword [esp + 0x1c]
movups xmmword [esp + 0x50], xmm0
adc ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x54]
adc eax, dword [esp + 0x30]
push eax
push ecx
lea eax, [esp + 0x80]
lea ecx, [edi - 0x10]
push eax
call fcn.004231a0
add edi, 0x40
mov dword [esp + 0x44], esi
add esp, 0x14
mov dword [esp + 0x14], edi
sub dword [esp + 0x38], 0x40
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
movups xmmword [esp + 0x40], xmm0
jne 0x4237e5
mov eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
xor ecx, dword [esp + 0x58]
push 0x9ddfea08
push 0xeb382d69
push eax
push ecx
call fcn.0046f360
xor ecx, ecx
mov esi, edx
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor ecx, dword [esp + 0x50]
xor esi, eax
xor esi, dword [esp + 0x4c]
push 0xeb382d69
push ecx
push esi
call fcn.0046f360
mov ecx, dword [esp + 0x44]
xor ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
xor esi, dword [esp + 0x50]
push 0x9ddfea08
push 0xeb382d69
push ecx
push esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
call fcn.0046f360
xor ecx, ecx
mov esi, edx
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor ecx, dword [esp + 0x48]
xor esi, eax
xor esi, dword [esp + 0x44]
push 0xeb382d69
push ecx
push esi
call fcn.0046f360
mov esi, dword [esp + 0x3c]
xor ecx, ecx
xor ecx, dword [esp + 0x3c]
mov edi, eax
push 0x9ddfea08
push 0xeb382d69
shr esi, 0xf
xor esi, dword [esp + 0x40]
push ecx
push esi
mov dword [esp + 0x30], edx
call fcn.0046f360
add eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
adc edx, dword [esp + 0x28]
xor ecx, ecx
xor ecx, dword [esp + 0x20]
push 0x9ddfea08
push 0xeb382d69
shr esi, 0xf
push ecx
xor esi, edi
mov dword [esp + 0x44], eax
push esi
mov dword [esp + 0x3c], edx
call fcn.0046f360
mov esi, dword [esp + 0x18]
xor ecx, ecx
shr esi, 0xf
mov edi, edx
xor esi, dword [esp + 0x1c]
xor ecx, dword [esp + 0x18]
push 0xb492b66f
push 0xbe98f273
push ecx
mov dword [esp + 0x48], eax
push esi
call fcn.0046f360
mov ecx, dword [esp + 0x3c]
add ecx, eax
push 0x9ddfea08
adc edi, edx
add ecx, dword [esp + 0x34]
push 0xeb382d69
adc edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x34]
xor ecx, dword [esp + 0x40]
push edi
push ecx
call fcn.0046f360
xor ecx, ecx
mov esi, edx
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor ecx, dword [esp + 0x30]
xor esi, eax
xor esi, dword [esp + 0x3c]
push 0xeb382d69
push ecx
push esi
call fcn.0046f360
push 0x9ddfea08
push 0xeb382d69
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 0xf
push ecx
xor esi, eax
push esi
call fcn.0046f360
pop edi
pop esi
mov esp, ebp
pop ebp
ret