Function at 0x425880
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x54], 0xe316e113
mov dword [esp + 0x58], 0xe707e501
mov dword [esp + 0x5c], 0xfbc4f905
mov dword [esp + 0x60], 0xff76fd19
mov dword [esp + 0x64], 0xf3f2f115
mov word [esp + 0x68], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x54]
mov esi, ecx
xor esi, 0x715d6fd8
mov edi, eax
and edi, 0xe
sub edi, esi
xor edi, edx
mov edx, edi
and edx, 0x37
xor edi, 0x37
lea edx, [edi + edx*2]
inc dl
mov byte [esp + ecx + 0x54], dl
inc ecx
add eax, 2
cmp ecx, 0x16
jne case.default.0x425933
lea ebx, [esp + 0x54]
lea ecx, [esp + 0x30]
push ebx
call fcn.00438120
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x445c40]
jmp dword [0x445c48]
lea ecx, [esp + 0x30]
push 0x410
call fcn.00438380
nop
nop
lea ecx, [esp + 0x30]
push 0x410
call fcn.00438380
jmp dword [0x445c50]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445c68]
mov eax, dword [case.0x425933.0]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x54], 0x6a53186d
mov dword [esp + 0x58], 0x205a7550
mov dword [esp + 0x5c], 0x545d5371
mov dword [esp + 0x60], 0x4f565e7d
mov dword [esp + 0x64], 0x507b624e
mov dword [esp + 0x68], 0x47647e65
mov dword [esp + 0x6c], 0x4259665a
mov dword [esp + 0x70], 0x4e774c63
mov dword [esp + 0x74], 0x6e605e62
mov dword [esp + 0x78], 0xb6937da1
mov dword [esp + 0x7c], 0x4b7a9191
mov word [esp + 0x80], 0
mov byte [esp + 0x82], 0
mov eax, 0x6b436adc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x6b436a88]
xor ecx, eax
add ecx, 0xe7aee9b3
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x6b436a88], cl
inc eax
cmp eax, 0x6b436b0b
jne 0x425a00
lea eax, [esp + 0x48]
lea ecx, [esp + 0x30]
push 0
push 0x2b
push ebx
push eax
call fcn.00438ea0
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
xor eax, eax
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x445c80]
mov eax, ecx
sub eax, edi
sar eax, 3
mov esi, ecx
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.0040ca10
add esp, 4
mov dword [esp + 0x28], 0
xor ecx, ecx
mov dword [esp + 0x44], esi
cmp edi, esi
setne cl
mov dword [esp + 0x24], eax
mov dword [esp + 4], eax
jmp dword [ecx*4 + 0x445c98]
mov edx, dword [esp + 0x28]
mov eax, edx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x445ca0]
xor edx, edx
test edi, edi
jne 0x425f55
jmp case.0x425933.0
cmp edi, ecx
je case.0x425933.0
push edi
mov esi, edx
call fcn.0040ca20
mov edx, esi
add esp, 4
lea ecx, [esp + 0x30]
mov ebx, edx
call fcn.004384d0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
pop ecx
inc edx
add byte [esi + 0x5f], ah
inc edx
add byte [eax + 0x59], dl
inc edx
add byte [eax + 0x59], al
inc edx
add byte [ecx + ebx*2 + 0x42], ah
add byte [eax + 0x59], dl
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx + ebx*2 + 0x42], ah
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x59], dh
inc edx
add byte [edx - 0x7fffbda7], al
pop ecx
inc edx
add byte [eax - 0x7fffbda7], al
pop ecx
inc edx
add byte [esi + 0x5f], ah
inc edx
add byte [ebx + 0x5a], dl
inc edx
add byte [ebp + 0x5e], cl
inc edx
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 [ebx + 0x5f], bh
inc edx
add byte [0xb000425e], dh
pop edx
inc edx
add byte [edi + 0x5e], al
inc edx
add byte [esi + ebx*2 + 0x42], bl
add byte [edx], al
pop ebx
inc edx
add byte [edi], dl
pop ebx
inc edx
add byte [eax], dl
pop ebx
inc edx
add byte [eax], dl
pop ebx
inc edx
add byte [eax], dl
pop ebx
inc edx
add byte [edi], dl
pop ebx
inc edx
add byte [eax], dl
pop esi
inc edx
add byte [edx], ah
pop ebx
inc edx
add byte [eax], dl
pop esi
inc edx
add byte [edi + 0x5b], bl
inc edx
add byte [eax], dl
pop esi
inc edx
add byte [eax + 0x1a00425b], dl
pop esp
inc edx
add byte [ebx], ah
pop esp
inc edx
add byte [edx], bh
pop esp
inc edx
add byte [ecx], dh
pop ebp
inc edx
add byte [ebp + ebx*2 + 0x5d960042], cl
inc edx
add byte [eax], ah
pop esi
inc edx
add byte [eax], ah
pop esi
inc edx
add byte [eax], ah
pop esi
inc edx
add byte [edx], ah
pop esi
inc edx
add byte [esi], dh
pop edi
inc edx
add byte [esi + 0x5f], al
inc edx
add byte [esi + 0x61], ah
popal