Function at 0x4e3426
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe60
push ebx
push esi
push edi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x30], 0xa5a5
mov word [ebp - 0x188], 0xa
jmp 0x4e37e2
lea eax, [ebp - 0x15c]
push eax
push 0
push 0
lea edx, [ebp - 0x48]
push edx
push 1
push 0
call fcn.004e0f1b
add esp, 0x18
lea ecx, [ebp - 0x15c]
lea edx, [ebp - 0x180]
push ecx
mov eax, dword [ebp - 0xc]
add edx, eax
add eax, esi
push edx
push 0x80
push eax
call fcn.004e14f7
add esp, 0x10
jmp case.0x4e38fa.8
xor ecx, ecx
movzx eax, cx
mov edx, eax
imul edx, eax
imul edx, eax
imul edx, eax
add edx, 7
sub edx, 7
je 0x4e34af
dec edx
je 0x4e34b8
sub edx, 0xf
je 0x4e352a
jmp 0x4e350b
inc word [ebp - 0x182]
jmp 0x4e350b
movzx ebx, word [ebp - 0x182]
mov eax, ebx
mov edi, 3
cdq
idiv edi
dec edx
setne al
and eax, 1
mov edi, eax
mov eax, ebx
mov ebx, 5
cdq
idiv ebx
cmp edx, 2
setne al
and eax, 1
or edi, eax
je 0x4e3502
mov dx, word [ebp - 0x184]
mov word [ebp - 0x18a], dx
mov word [ebp - 0x186], 1
jmp 0x4e350b
mov word [ebp - 0x186], 0
inc ecx
cmp cx, 3
jb 0x4e348f
jmp case.0x4e39ea.0
mov ecx, dword [esi + 0x1c]
xor dword [esi], ecx
mov eax, dword [esi + 4]
xor dword [esi], eax
jmp case.0x4e38fa.8
xor ecx, ecx
movzx eax, cx
mov edx, eax
imul edx, eax
add edx, eax
inc edx
cmp edx, 0x15
jg 0x4e3559
je 0x4e35d6
dec edx
je 0x4e3599
sub edx, 2
je 0x4e35c6
sub edx, 4
je 0x4e3584
sub edx, 6
je 0x4e35b0
jmp 0x4e3620
sub edx, 0x1f
je 0x4e3575
sub edx, 0xc
je 0x4e3611
sub edx, 0xe
je 0x4e35f0
jmp 0x4e3620
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
shr dword [ebp - 0x2c], 0x10
jmp 0x4e3620
mov edx, dword [ebp - 0x20]
imul edx, dword [ebp - 0x1c]
and edx, 0xffff
mov dword [ebp - 0x28], edx
jmp 0x4e3620
mov eax, dword [ebp - 0x30]
shr eax, 0x10
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x30]
and edx, 0xffff
mov dword [ebp - 0x1c], edx
jmp 0x4e3620
cmp dword [ebp - 0x18], 0
je 0x4e3620
mov eax, dword [ebp - 0x18]
imul dword [ebp - 0x24]
and eax, 0xffff
add dword [ebp - 0x28], eax
jmp 0x4e3620
mov dword [ebp - 0x20], 0x15a
mov dword [ebp - 0x24], 0x4e35
jmp 0x4e3620
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
imul edx, dword [ebp - 0x1c]
shl eax, 0x10
and eax, 0xffff0000
add edx, eax
inc edx
mov dword [ebp - 0x2c], edx
jmp 0x4e3620
movzx edx, word [ebp - 0x186]
and edx, 0x80000001
jns 0x4e3604
dec edx
or edx, 0xfffffffe
inc edx
sub edx, 1
jb 0x4e38a4
je 0x4e3630
jmp 0x4e3620
and dword [ebp - 0x2c], 0x7fff
mov ax, word [ebp - 0x2c]
mov word [ebp - 0x32], ax
inc ecx
cmp cx, 8
jb 0x4e352c
jmp case.0x4e3728.0
xor ecx, ecx
movzx eax, cx
mov edx, eax
imul edx, eax
imul edx, eax
inc edx
cmp edx, 0x1c
jg 0x4e365d
je 0x4e36b4
dec edx
je 0x4e36f2
dec edx
je 0x4e369f
sub edx, 7
je case.default.0x4e3728
jmp 0x4e37b3
sub edx, 0x41
je 0x4e3679
sub edx, 0x3d
je 0x4e3799
sub edx, 0x5b
je 0x4e3717
jmp 0x4e37b3
movzx edx, word [ebp - 0x10]
movzx eax, word [ebp - 0x12]
lea edx, [ebp + edx*8 - 0x1a0]
inc word [edx + eax*2]
mov ax, word [ebp - 0x184]
mov word [ebp - 0x18a], ax
jmp 0x4e37b3
movzx eax, word [ebp - 0x32]
mov ebx, 3
cdq
idiv ebx
mov word [ebp - 0x12], dx
jmp 0x4e37b3
movzx ebx, word [ebp - 0x10]
movzx eax, word [ebp - 0x10]
lea ebx, [ebp + ebx*8 - 0x1a0]
xor edx, edx
mov dword [ebp - 0x38], ebx
lea eax, [ebp + eax*8 - 0x1a0]
movzx ebx, word [ebp - 0x12]
mov edi, dword [ebp - 0x38]
mov bx, word [edi + ebx*2]
cmp bx, word [eax]
jbe 0x4e36e3
mov word [ebp - 0x12], dx
inc edx
add eax, 2
cmp dx, 3
jb 0x4e36cf
jmp 0x4e37b3
movzx eax, word [ebp - 0x32]
mov ebx, 9
cdq
idiv ebx
mov word [ebp - 0x32], dx
movzx eax, word [ebp - 0x32]
mov ebx, 3
cdq
idiv ebx
mov word [ebp - 0x10], ax
jmp 0x4e37b3
movzx eax, word [ebp - 0x32]
mov ebx, 9
cdq
idiv ebx
cmp edx, 8
ja case.default.0x4e3728
jmp dword [edx*4 + 0x4e372f]
mov word [ebp - 0xe], 0
movzx eax, word [ebp - 0x12]
movzx edx, word [ebp - 0x12]
lea eax, [ebp + eax*2 - 0x1a0]
lea edx, [ebp + edx*2 - 0x1a0]
movzx ebx, word [ebp - 0x10]
mov bx, word [edx + ebx*8]
cmp bx, word [eax]
jbe 0x4e3789
mov bx, word [ebp - 0xe]
mov word [ebp - 0x10], bx
inc word [ebp - 0xe]
add eax, 8
cmp word [ebp - 0xe], 3
jb 0x4e3774
jmp 0x4e37b3
movzx eax, word [ebp - 0x10]
lea edx, [eax + eax*2]
add dx, word [ebp - 0x12]
mov word [ebp - 0x32], dx
mov ax, word [ebp - 0x32]
mov word [ebp - 0x184], ax
inc ecx
cmp cx, 7
jb 0x4e3632
jmp case.0x4e3728.0
push 0x10
push 0
lea edx, [ebp - 0x48]
push edx
call fcn.004dedff
add esp, 0xc
lea ecx, [ebp - 0x48]
push ecx
call fcn.004e28cc
pop ecx
jmp case.0x4e38fa.8
xor ecx, ecx
movzx eax, cx
cmp eax, 5
ja case.default.0x4e37f0
jmp dword [eax*4 + 0x4e37f7]
mov word [ebp - 0xe], 0
lea eax, [ebp - 0x1a0]
xor edx, edx
mov ebx, eax
mov word [ebx], 0
inc edx
add ebx, 2
cmp dx, 3
jb 0x4e381f
inc word [ebp - 0xe]
add eax, 8
cmp word [ebp - 0xe], 3
jb 0x4e381b
jmp case.default.0x4e37f0
mov word [ebp - 0x19a], 0
jmp case.default.0x4e37f0
inc word [ebp - 0x194]
jmp case.default.0x4e37f0
mov word [ebp - 0x18a], 0xffff
jmp case.default.0x4e37f0
mov word [ebp - 0x182], 0
jmp case.default.0x4e37f0
mov word [ebp - 0x184], 0
inc ecx
cmp cx, 6
jb 0x4e37e4
jmp case.0x4e3728.0
mov dword [ebp - 4], 0x24
mov eax, dword [ebp - 4]
and eax, 0xf
mov edx, dword [ebp - 4]
sub edx, eax
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 4]
sub ecx, 0x10
mov dword [ebp - 0xc], ecx
jmp case.0x4e38fa.8
movzx ecx, word [ebp - 0x32]
mov eax, ecx
mov ebx, 7
cdq
idiv ebx
mov eax, ecx
cmp edx, 2
sete bl
cdq
mov ecx, 0xb
and ebx, 1
idiv ecx
cmp edx, 5
sete al
and eax, 1
or ebx, eax
je 0x4e38ee
mov dx, word [ebp - 0x184]
mov word [ebp - 0x18a], dx
mov word [ebp - 0x186], 1
jmp 0x4e352a
movzx ecx, word [ebp - 0x19a]
cmp ecx, 9
ja case.0x4e38fa.3
jmp dword [ecx*4 + 0x4e3901]
push dword [ebp - 0xc]
push esi
lea eax, [ebp - 0x180]
push eax
call fcn.004dedc4
add esp, 0xc
lea edx, [ebp - 0x15c]
push edx
push esi
mov ecx, dword [ebp - 8]
shl ecx, 3
push ecx
lea eax, [ebp - 0x180]
push eax
call fcn.004e14f7
add esp, 0x10
jmp case.0x4e38fa.8
mov edx, dword [ebp - 4]
and edx, 0xf
push edx
lea ecx, [ebp - 0x180]
mov eax, dword [ebp - 8]
add ecx, eax
push ecx
add eax, esi
push eax
call fcn.004dedc4
add esp, 0xc
jmp case.0x4e38fa.8
xor edx, edx
lea eax, [esi + 0xc]
mov ecx, edx
inc edx
and ecx, 7
mov cl, byte [esi + ecx + 0x1c]
xor byte [eax], cl
inc eax
cmp edx, 0x10
jb 0x4e3983
xor ecx, ecx
movzx eax, cx
mov edx, eax
imul edx, eax
lea eax, [eax + eax*2]
add edx, eax
inc edx
dec edx
je 0x4e39bd
sub edx, 4
je 0x4e39c6
sub edx, 6
je 0x4e3a17
sub edx, 8
je 0x4e352a
jmp case.default.0x4e39ea
inc word [ebp - 0x19a]
jmp case.default.0x4e39ea
mov dx, word [ebp - 0x19a]
cmp dx, word [ebp - 0x188]
jne case.default.0x4e39ea
movzx eax, word [ebp - 0x182]
mov ebx, 9
cdq
idiv ebx
cmp edx, 8
ja case.default.0x4e39ea
jmp dword [edx*4 + 0x4e39f1]
mov word [ebp - 0x186], 1
inc ecx
cmp cx, 4
jb 0x4e3997
xor edx, edx
lea eax, [esi + 0x1c]
mov cl, byte [eax]
inc edx
xor byte [eax - 0x18], cl
inc eax
cmp edx, 8
jb 0x4e3a30
jmp case.0x4e38fa.8
cmp dword [esi], 0
jne 0x4e3aa0
mov eax, dword [ebp + 8]
mov edx, dword [eax]
cmp byte [edx], 1
jne 0x4e3a68
push 4
lea ecx, [esi + 0xc]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
push dword [edx + 0xd]
call fcn.004dedc4
add esp, 0xc
jmp 0x4e3aa0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
cmp byte [eax], 7
jne 0x4e3a8a
push 8
lea edx, [esi + 0xc]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
push dword [eax + 0xd]
call fcn.004dedc4
add esp, 0xc
jmp 0x4e3aa0
push 0x10
lea edx, [esi + 0xc]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
push dword [eax + 0xd]
call fcn.004dedc4
add esp, 0xc
mov eax, dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret