Function at 0x43a9b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [esp + 0x40]
mov dword [esp], ecx
mov esi, edx
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
add ebx, edx
mov edx, 0x4c957f2d
mov eax, ebx
adc ecx, 0
imul edi, ebx, 0x5851f42d
mul edx
imul ecx, ecx, 0x4c957f2d
add edi, edx
mov dword [esp + 8], eax
add ecx, edi
cmp esi, 8
mov dword [esp + 4], ecx
jbe 0x43ab64
cmp esi, 0x10
jbe 0x43ab86
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edi, edx
mov edx, dword [esp]
mov ebx, dword [esi + edx - 0x10]
mov ebp, dword [esi + edx - 0xc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
xor ebx, eax
mov eax, dword [edi + 0xc]
xor ebp, ecx
mov ecx, dword [esi + edx - 4]
mov edi, esi
mov dword [esp + 0x10], edi
xor ecx, eax
mov dword [esp + 0x20], eax
mov eax, ecx
not ecx
bswap eax
mov esi, eax
mul ebx
imul esi, ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
bswap ebp
add edx, esi
mov esi, dword [esp]
imul ecx, ebp
mov eax, dword [eax + 8]
mov esi, dword [edi + esi - 8]
mov dword [esp + 0x1c], eax
xor esi, eax
mov eax, ebp
mov ebp, dword [esp + 4]
mov edi, esi
not esi
bswap edi
imul edi, ebx
bswap ebx
add edi, edx
mul esi
imul esi, ebx
mov ebx, dword [esp + 0x40]
add edx, ecx
bswap eax
add esi, edx
mov edx, dword [esp + 8]
bswap esi
mov ecx, dword [ebx + 0x18]
mov ebx, dword [ebx + 0x1c]
add edx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
adc ebp, ebx
xor edx, dword [esp + 0xc]
xor ebp, eax
mov eax, dword [esp]
xor ebp, edi
mov edi, ebp
xor edx, esi
shld edi, edx, 0x17
shld edx, ebp, 0x17
mov esi, edx
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp], eax
xor ecx, dword [esp + 0x28]
xor ebp, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0xc]
xor ecx, dword [esp + 0x20]
mov eax, ecx
not ecx
bswap eax
mov ebx, eax
mul dword [esp + 4]
imul ebx, ebp
bswap ebp
imul ecx, ebp
mov dword [esp + 8], eax
mov eax, dword [esp]
add edx, ebx
mov ebx, dword [eax + 8]
xor ebx, dword [esp + 0x1c]
mov eax, ebx
not ebx
bswap eax
imul eax, dword [esp + 4]
add eax, edx
mov dword [esp + 0xc], eax
mov eax, ebp
mov ebp, dword [esp + 4]
mul ebx
add edx, ecx
bswap eax
bswap ebp
imul ebx, ebp
add ebx, edx
mov edx, dword [esp + 0x10]
bswap ebx
add edx, 0xfffffff0
add esi, dword [esp + 0x18]
mov dword [esp + 0x10], edx
adc edi, dword [esp + 0x14]
xor esi, dword [esp + 8]
xor edi, eax
mov eax, dword [esp]
xor esi, ebx
xor edi, dword [esp + 0xc]
add eax, 0x10
mov ebp, edi
shld ebp, esi, 0x17
shld esi, edi, 0x17
cmp edx, 0x10
mov edi, ebp
ja 0x43aac0
jmp 0x43ac86
cmp esi, 1
jbe 0x43abf8
mov eax, dword [esp]
cmp esi, 3
jbe 0x43ac09
mov ebp, dword [eax]
mov edi, dword [esi + eax - 4]
xor ebx, ebx
jmp 0x43ac19
mov ecx, dword [esp + 0x40]
mov eax, dword [esp]
mov edi, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov ebx, dword [ecx]
xor ebp, dword [esi + eax - 4]
xor edi, dword [esi + eax - 8]
mov esi, dword [ecx + 4]
xor ebx, dword [eax]
xor esi, dword [eax + 4]
mov eax, ebp
not ebp
bswap eax
mov ecx, eax
mul ebx
mov dword [esp], eax
imul ecx, esi
bswap esi
add edx, ecx
mov ecx, edi
not edi
mov eax, esi
imul ebp, esi
bswap ecx
imul ecx, ebx
bswap ebx
add ecx, edx
mul edi
imul edi, ebx
add edx, ebp
mov ebp, dword [esp + 0x40]
bswap eax
add edi, edx
mov edx, dword [esp + 4]
bswap edi
mov esi, dword [ebp + 0x18]
add esi, dword [esp + 8]
adc edx, dword [ebp + 0x1c]
xor esi, dword [esp]
xor eax, ecx
xor eax, edx
xor esi, edi
jmp 0x43ac7c
mov eax, dword [esp]
xor ebx, ebx
cmp esi, 1
jne 0x43ac15
movzx edi, byte [eax]
mov ebp, edi
jmp 0x43ac19
movzx ebp, word [eax]
movzx edi, byte [esi + eax - 1]
xor ebx, ebx
jmp 0x43ac19
xor edi, edi
xor ebp, ebp
mov eax, dword [esp + 0x40]
mov esi, ebx
xor ebx, dword [eax + 0xc]
xor ebp, dword [eax]
xor esi, dword [eax + 4]
mov eax, ebx
not ebx
bswap eax
mov ecx, eax
mul ebp
mov dword [esp], eax
mov eax, dword [esp + 0x40]
imul ecx, esi
bswap esi
add edx, ecx
imul ebx, esi
xor edi, dword [eax + 8]
mov eax, esi
mov ecx, edi
not edi
bswap ecx
imul ecx, ebp
bswap ebp
add ecx, edx
mul edi
imul edi, ebp
mov ebp, dword [esp + 0x40]
add edx, ebx
bswap eax
add edi, edx
mov edx, dword [esp + 4]
bswap edi
mov esi, dword [ebp + 0x18]
add esi, dword [esp + 8]
adc edx, dword [ebp + 0x1c]
xor esi, edi
xor eax, ecx
xor esi, dword [esp]
xor eax, edx
mov ebp, eax
shld ebp, esi, 0x17
shld esi, eax, 0x17
xor esi, 0xff
mov ecx, 0x2df45158
imul edi, ebp, 0x2df45158
bswap ebp
mov eax, esi
imul ebx, ebp, 0xa7ae0bd2
mul ecx
mov ecx, eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
mov edx, 0xb36a80d2
add edi, eax
mov eax, ebp
imul ebp, esi, 0xb36a80d2
mov esi, dword [esp + 0x40]
mul edx
add ebx, edx
bswap eax
add ebp, ebx
xor eax, edi
bswap ebp
mov dword [esi + 0x14], eax
xor ebp, ecx
mov dword [esi + 0x10], ebp
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret