Function at 0x42a65b
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x3c], ecx
shr ecx, 0x1c
add ecx, eax
sar ecx, 4
mov dword [esp], ecx
mov ebx, 0x87c37b91
mov ebp, 0x114253d5
mov dword [esp + 4], 0
mov edx, 0
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0
cmp eax, 0x10
jl 0x42a7fa
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x54]
add eax, 8
mov esi, dword [esp]
mov dword [esp + 0xc], edi
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 8], eax
mov esi, dword [eax - 8]
mov eax, esi
mul ebp
mov eax, 0x114253d5
mov ebp, esi
imul ebp, ebx
add ebp, edx
mov edx, dword [esp + 8]
mov ebx, dword [edx - 4]
mov ecx, edi
mov dword [esp + 0x18], edi
mov edi, ebx
imul edi, eax
mov eax, esi
mov edx, 0x80000000
mul edx
add edi, ebp
mov ebp, 0x88a129ea
imul esi, ebp
add esi, edx
mov edx, 0x80000000
imul ebx, edx
add ebx, esi
shr edi, 1
or eax, edi
mov esi, eax
mov edx, 0x4cf5ad43
imul esi, edx
mov edi, 0x2745937f
mul edi
add esi, edx
imul ebx, edi
add ebx, esi
xor ebx, dword [esp + 0x10]
xor eax, dword [esp + 0xc]
mov esi, ebx
shld esi, eax, 0x1b
shld eax, ebx, 0x1b
add eax, ecx
adc esi, dword [esp + 0x14]
mov ecx, 5
mul ecx
lea esi, [esi + esi*4]
mov edi, eax
add edi, 0x52dce729
mov dword [esp + 0xc], edi
mov ecx, edx
adc ecx, esi
mov eax, dword [esp + 8]
mov ebp, dword [eax]
mov eax, ebp
mov edx, 0x2745937f
mul edx
mov esi, ebp
mov ebx, 0x4cf5ad43
imul esi, ebx
add esi, edx
mov edx, dword [esp + 8]
mov ebx, dword [edx + 4]
mov edx, 0x2745937f
imul ebx, edx
add ebx, esi
shrd eax, ebx, 0x1f
mov edx, 0x4e8b26fe
imul ebp, edx
shr ebx, 0x1f
or ebx, ebp
mov ebp, 0x114253d5
mov esi, eax
mov edx, 0x87c37b91
imul esi, edx
mul ebp
add esi, edx
imul ebx, ebp
add ebx, esi
xor ebx, dword [esp + 0x14]
xor eax, dword [esp + 0x18]
mov edx, ebx
shld edx, eax, 0x1f
shld eax, ebx, 0x1f
mov ebx, 0x87c37b91
add eax, edi
mov dword [esp + 0x10], ecx
adc edx, ecx
lea esi, [edx + edx*4]
mov ecx, 5
mul ecx
mov edi, eax
mov eax, dword [esp + 8]
add edi, 0x38495ab5
adc edx, esi
mov esi, dword [esp + 0x1c]
add eax, 0x10
dec esi
jne 0x42a6c2
mov ecx, dword [esp + 0x58]
and ecx, 0xf
dec ecx
cmp ecx, 0xe
ja case.default.0x42a874
mov dword [esp + 0x14], edx
mov ebx, dword [esp]
shl ebx, 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 8], 0
xor edx, edx
xor ebp, ebp
xor esi, esi
mov eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp], eax
jmp dword [ecx*4 + 0x461658]
mov ecx, dword [esp + 0x3c]
xor ebp, ecx
mov eax, dword [esp + 0x58]
xor esi, eax
xor edx, ecx
xor edi, eax
add esi, edi
adc ebp, edx
add edi, esi
adc edx, ebp
mov eax, esi
imul esi, ebp, 0xed558ccd
shr ebp, 1
xor ebp, eax
mov ebx, 0xed558ccd
mov eax, ebp
mov ecx, edx
mul ebx
mov ebx, edi
imul edi, ebp, 0xff51afd7
add edi, edx
add edi, esi
imul ebp, edi, 0x1a85ec53
shr edi, 1
xor edi, eax
mov edx, 0x1a85ec53
mov eax, edi
mul edx
imul esi, edi, 0xc4ceb9fe
add esi, edx
add esi, ebp
mov edi, esi
shr edi, 1
xor edi, eax
imul ebp, ecx, 0xed558ccd
shr ecx, 1
xor ecx, ebx
mov eax, ecx
mov edx, 0xed558ccd
mul edx
imul ecx, ecx, 0xff51afd7
add ecx, edx
add ecx, ebp
imul ebp, ecx, 0x1a85ec53
shr ecx, 1
xor ecx, eax
mov eax, ecx
mov edx, 0x1a85ec53
mul edx
imul ecx, ecx, 0xc4ceb9fe
add ecx, edx
add ecx, ebp
mov edx, ecx
shr edx, 1
xor edx, eax
add edi, edx
adc esi, ecx
add edx, edi
adc ecx, esi
mov eax, dword [esp + 0x60]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x42aa2d
add byte [eax + eax], al
add al, 0
add byte [eax], al
add byte [eax], al
add byte [0x6000000], al
add eax, 0x6000000
add byte [eax], al
add byte [eax], al
push es
add byte [esi], al
add byte [eax], al
add byte [edi], al
pop es
add byte [eax], al
add byte [eax], cl
add byte [eax], al
add byte [ecx], cl
add byte [eax], al
add byte [edx], cl
add byte [eax], al
add byte [ebx], cl
add byte [eax], al
add byte [0xf000000], cl
add byte [eax], al
add byte [ecx], dl
add byte [eax], al
add byte [ebx], dl
add byte [eax], al
add byte [edi], dl
add byte [eax], al
add byte [ebx], bl
add byte [eax], al
add byte [edi], bl
add byte [eax], al
add byte [ebx], ah
and eax, dword [eax]
add byte [eax], al
sub eax, dword [eax]
add byte [eax], al
xor eax, dword [eax]
add byte [eax], al
cmp eax, dword [eax]
add byte [eax], al
inc ebx
add byte [eax], al
add byte [ebx], dl
add byte [eax], al
arpl word [eax], ax
add byte [eax], al
jae 0x4616b6
add byte [eax], al
add dword [eax], 0
add byte [ebx - 0x3d000000], ah
add byte [eax], al
add bl, ah
add byte [eax], al
add byte [edx], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add al, 0
add byte [eax], al
add al, 0
add byte [eax], al
add al, 0
add byte [eax], al
add eax, 0x5000000
add byte [eax], al
add byte [0x5000000], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add eax, 0x7000000
add byte [eax], al
add byte [ecx], cl
add byte [eax], al
add byte [0x11000000], cl
add byte [eax], al
add byte [ecx], bl
add byte [eax], al
add byte [ecx], ah
and dword [eax], eax
add byte [eax], al
xor dword [eax], eax
add byte [eax], al
inc ecx
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
add dword [eax], 0xc10000
add byte [eax], al
add dword [ecx], eax
add byte [eax], al
add dword [ecx], 0x2010000
add byte [eax], al
add dword [ebx], eax
add byte [eax], al
add dword [eax + eax], eax
add byte [ecx], al
push es
add byte [eax], al
add dword [eax], ecx
add byte [eax], al
add dword [eax + eax], ecx
add byte [ecx], al
adc byte [eax], al
add byte [ecx], al
sbb byte [eax], al
add byte [ecx], al
and byte [eax], al
add byte [ecx], al
xor byte [eax], al
add byte [ecx], al
inc eax
add byte [eax], al
add dword [eax], esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add al, 0
add byte [eax], al
add eax, 0x5000000
add byte [eax], al
add byte [esi], al
add byte [eax], al
add byte [esi], al
add byte [eax], al
add byte [edi], al
pop es
add byte [eax], al
add byte [edi], al
add byte [eax], al
add byte [eax], cl
add byte [eax], al
add byte [eax], cl
or byte [eax], al
add byte [eax], al
or dword [eax], eax
add byte [eax], al
or dword [eax], eax
add byte [eax], al
or al, byte [eax]
add byte [eax], al
or al, byte [eax]
add byte [eax], al
or eax, dword [eax]
add byte [eax], al
or eax, dword [eax]
add byte [eax], al
or al, 0
add byte [eax], al
or al, 0
add byte [eax], al
or eax, 0xd000000
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
add byte [ecx], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov dl, byte [edx]
inc esi
add byte [ebx - 0x50ffb9ee], bl
adc al, byte [esi]
rcl byte [edx], 0x46
add dl, dl
adc al, byte [esi]
in eax, dx
adc al, byte [esi]
add byte [ebx], dl
inc esi
add byte [esi], cl
adc eax, dword [esi]
sub dl, byte [ebx]
inc esi
add byte [esi + 0x13], cl
inc esi
add byte [ebp + 0x13], bl
inc esi
add byte [edi + 0x13], ch
inc esi
add byte [edx - 0x5affb9ed], cl
adc eax, dword [esi]
rcl dword [ebx], 0x46
add dh, bl
adc eax, dword [esi]
lock adc eax, dword [esi]
add al, 0x14
inc esi
add byte [eax], dh
adc al, 0x46
add byte [eax + 0x14], al
inc esi
add byte [edi + 0x14], cl
inc esi
add byte [esi + 0x14], bl
inc esi
add byte [eax + 0x14], bh
inc esi
add byte [eax - 0x68ffb9ec], cl
adc al, 0x46
add byte [esp + edx + 0x14c50046], ch
inc esi
add dl, dl
adc al, 0x46
add bh, bl
adc al, 0x46
add byte [eax], al
add dword [edx], eax
add eax, dword [esp + eax]
add eax, 0x6060605
push es
pop es
pop es
pop es
pop es
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or eax, 0xd0d0d0d
or eax, 0xd0d0d0d
or eax, 0xd0d0d0d
or eax, 0xd0d0d0d
or eax, 0xd0d0d0d
or eax, 0xd0d0d0d
or eax, 0xe0e0e0d
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
invalid