Function at 0x424612
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x94
mov dword [esp + 4], 0x77a27985
mov dword [esp + 8], 0x73cd75c7
mov dword [esp + 0xc], 0x4ffa71d1
mov dword [esp + 0x10], 0x4bfa4d8d
mov dword [esp + 0x14], 0x479a49f8
mov dword [esp + 0x18], 0x43ce45e5
mov dword [esp + 0x1c], 0x5fa341e1
lea eax, [esp + 0x20]
mov dword [esp], eax
mov word [esp + 0x20], 0x5d5c
mov dword [esp + 0x22], 0
mov byte [esp + 0x26], 0
xor ecx, ecx
nop
movzx edx, byte [esp + ecx + 4]
mov edi, ecx
and edi, 0x14
mov esi, ecx
and esi, 2
mov ebx, esi
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, esi
mov esi, ecx
xor esi, 0x73c2a796
add esi, ebx
add esi, edi
mov edi, esi
and edi, edx
mov ebx, edi
and ebx, 2
mov ebp, edi
or ebp, 0xfffffffd
inc ebp
mov eax, edi
and eax, 0xfffffffd
imul eax, ebp
or edi, 2
imul edi, ebx
sub eax, edi
add esi, edx
lea edx, [eax + esi]
add edx, 0x11
not esi
and esi, 1
or edx, 1
add edx, esi
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0x23
jne 0x4244d0
lea edx, [esp + 0x76]
lea eax, [esp + 4]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x92]
mov ecx, 1
mov eax, dword [esp]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x54]
push eax
push 0
push 0
push 0xe
push edx
push 0
call dword [0x44d2b4]
mov dword [esp], eax
mov dword [esp + 4], 0xb7760967
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 4]
mov esi, ecx
and esi, 4
mov ebx, ecx
and ebx, 2
mov edi, ebx
xor edi, 2
imul edi, esi
or esi, 2
imul esi, ebx
mov ebx, ecx
xor ebx, 0xda1132be
add ebx, edi
add ebx, esi
mov esi, edx
not esi
or esi, ebx
add esi, edx
inc esi
mov edi, esi
and edi, 2
mov ebp, esi
or ebp, 0xfd
inc ebp
mov eax, esi
and eax, 0xfd
imul eax, ebp
or esi, 2
imul esi, edi
sub eax, esi
add ebx, edx
add ebx, eax
add bl, 0x4a
mov byte [esp + ecx + 4], bl
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 7
jb case.default.0x42460b
xor eax, eax
mov ecx, dword [esp]
cmp ecx, dword [esp + 4]
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x4476f4]
mov ebx, dword [esp + 0x54]
test ebx, ebx
jns 0x424621
mov eax, 0xffffffff
jmp 0x424624
lea eax, [ebx + ebx]
push eax
call fcn.00408380
add esp, 4
mov esi, eax
lea eax, [esp + 0x54]
push eax
push ebx
push esi
push 0xe
lea eax, [esp + 0x86]
push eax
push 0
call dword [0x44d2b4]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4476fc]
xor ebx, ebx
jmp dword [0x447704]
push esi
call fcn.00408390
add esp, 4
mov eax, ebx
add esp, 0x94
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x54]
mov ecx, eax
add ecx, 9
jns 0x424684
mov eax, 0xffffffff
jmp 0x42468b
lea eax, [eax*2 + 0x12]
push eax
call fcn.00408380
add esp, 4
mov dword [esp], eax
mov dword [esp + 4], 0x81568720
mov dword [esp + 8], 0x8d2f8323
mov dword [esp + 0xc], 0x892d8f39
mov dword [esp + 0x10], 0x95258b21
mov dword [esp + 0x14], 0x91969729
mov word [esp + 0x18], 0
mov byte [esp + 0x1a], 0
xor eax, eax
nop
nop
nop
movzx ebx, byte [esp + eax + 4]
lea edx, [eax + 1]
mov ecx, 0x5a5d7e1e
sub ecx, eax
or ecx, ebx
mov edi, 0x1e
sub edi, eax
mov ebp, edi
and ebp, 0xf6
and edx, 9
or edx, ebp
xor edx, 9
or edx, edi
and edx, ebx
not ecx
or ecx, edx
mov edi, ecx
mov edx, ecx
xor edx, 0x9a
add edx, ecx
and ecx, 0x9a
and edi, 0x65
sub edx, edi
add edx, ecx
inc dl
mov byte [esp + eax + 4], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x17
jb 0x4246d0
movzx ecx, word [esi]
mov edi, dword [esp]
mov eax, edi
test cx, cx
je 0x424761
lea edx, [esi + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424750
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x424791
lea edx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424780
mov word [eax], 0
lea eax, [esp + 0x70]
push eax
push edi
call fcn.004400e0
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44770c]
mov eax, dword [esp + 0x70]
shr eax, 2
and eax, 4
jmp dword [eax + 0x447714]
jmp dword [0x44771c]