Function at 0x428634
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [esp + 0x18], 0
mov dword [esp + 4], 0x40474645
mov byte [esp + 8], 0
xor eax, eax
xor ecx, ecx
movzx esi, byte [esp + ecx + 4]
mov edi, eax
and edi, 2
mov edx, ecx
xor edx, 0xa8086811
add edx, edi
mov edi, edx
and edi, esi
mov ebp, edi
and ebp, 0x1d
mov ebx, edi
or ebx, 0xfd
inc ebx
imul ebx, ebp
mov ebp, edi
and ebp, 2
or edi, 2
imul edi, ebp
sub ebx, edi
add edx, esi
add edx, ebx
add dl, 0xab
mov byte [esp + ecx + 4], dl
inc ecx
add eax, 2
cmp ecx, 5
jne 0x4282e0
mov eax, dword [esp + 4]
mov ecx, dword [0x44cd58]
test ecx, ecx
je 0x42837e
xor edx, edx
mov esi, dword [0x44cd5c]
cmp dword [esi + edx*8], 0x61813e67
je 0x42835a
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
cmp edx, ecx
jb 0x428340
jmp 0x42837e
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42837e
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44cd60]
call fcn.0043dda0
add esp, 0x1c
mov dword [esp + 4], 0x733231cc
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 4]
mov edx, ecx
or edx, 0x1f45f4cc
mov edi, 0x33
sub edi, ecx
and edi, 0x32
mov ebx, edx
and ebx, 9
or ebx, edi
xor ebx, 9
lea edi, [edx + edx]
neg edi
add edi, ecx
add edi, 0xcb
and edi, ebx
not edi
and edi, esi
or edx, esi
lea esi, [edi + edi]
not esi
add esi, edi
and esi, edx
xor edx, edi
or edx, esi
lea edi, [edx + 0x63a23803]
mov esi, edi
and esi, 1
mov ebx, 0x9c5dc7fc
sub ebx, edx
mov edx, ebx
not edx
and ebx, 0x89
and edi, 0x76
or edi, ebx
and edx, 1
or edx, edi
xor edx, 0x88
add edx, esi
mov byte [esp + ecx + 4], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 4
jb 0x428390
xor ebx, ebx
cmp eax, dword [esp + 4]
jne 0x42867a
push dword [esp + 0x18]
call fcn.0043af60
add esp, 4
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0x40474645
mov byte [esp + 8], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 4]
mov edi, ebx
and edi, 2
mov edx, eax
xor edx, 0xa8086811
add edx, edi
mov ebp, edx
and ebp, esi
mov ecx, ebp
and ecx, 0x1d
mov edi, ebp
or edi, 0xfd
inc edi
imul edi, ecx
mov ecx, ebp
and ecx, 2
or ebp, 2
imul ebp, ecx
sub edi, ebp
add edx, esi
add edx, edi
add dl, 0xab
mov byte [esp + eax + 4], dl
inc eax
add ebx, 2
cmp eax, 5
jne 0x428450
mov eax, dword [esp + 4]
mov edx, dword [0x44cd58]
test edx, edx
je 0x4284e5
xor esi, esi
mov edi, dword [0x44cd5c]
cmp dword [edi + esi*8], 0x61813e67
je 0x4284c0
inc esi
cmp edx, esi
jne 0x4284b0
jmp 0x4284e5
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x4284e5
push 0
push dword [esp + 0x20]
push dword [esp + 8]
push 5
push 0x10
push edx
push dword [0x44cd60]
call fcn.0043dda0
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x42866f
mov edx, dword [esp]
mov esi, dword [edx]
xor eax, eax
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add ebx, 0x104
mov edx, edi
test ecx, ecx
jne 0x428500
test ebx, ebx
jns 0x428520
mov eax, 0xffffffff
push eax
call fcn.004083b0
add esp, 4
mov ebp, eax
mov ecx, dword [esp]
jmp 0x428540
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x428563
mov edx, dword [ecx + esi + 0x3c]
movzx ebx, word [edx]
test bx, bx
je 0x428530
add edx, 2
nop
mov word [eax], bx
add eax, 2
movzx ebx, word [edx]
add edx, 2
test bx, bx
jne 0x428550
jmp 0x428530
xor ebx, ebx
cmp eax, ebp
je 0x428666
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x4285cb
mov eax, ebp
add eax, 2
xor ebx, ebx
jmp 0x42859c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x4285cb
cmp cx, 0x7f
jbe 0x428590
movzx edx, cx
cmp edx, 0x7ff
ja 0x4285c0
add ebx, 2
jmp 0x428591
cmp cx, 0xffff
je 0x428591
add ebx, 3
jmp 0x428591
lea edi, [ebx + 1]
push edi
call fcn.004083b0
add esp, 4
mov esi, eax
push ebp
push edi
push eax
call fcn.00427690
add esp, 0xc
mov dword [esp + 4], 0x4cbbbd54
mov dword [esp + 8], 0x46bbba43
mov dword [esp + 0xc], 0xc9c601b9
mov word [esp + 0x10], 0x57c4
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x37
xor cl, byte [esp + eax + 4]
add cl, 0xed
mov byte [esp + eax + 4], cl
add eax, 0x479c5374
mov ecx, eax
xor ecx, 0x479c5373
and eax, 0x8c
add eax, eax
sub eax, ecx
cmp eax, 0x13
jb 0x428620
lea eax, [esp + 4]
mov ecx, dword [esp + 0x34]
push ebx
push esi
push eax
call fcn.004092f0
mov ebx, eax
push esi
call fcn.004083c0
add esp, 4
push ebp
call fcn.004083c0
add esp, 4
push dword [esp]
call fcn.0043b010
add esp, 4
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret