Function at 0x4ed732
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 0x4edaee
lea eax, [ebp - 0x15c]
push eax
push 0
push 0
lea edx, [ebp - 0x48]
push edx
push 1
push 0
call fcn.004eb227
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.004eb803
add esp, 0x10
jmp case.0x4edc06.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 0x4ed7bb
dec edx
je 0x4ed7c4
sub edx, 0xf
je 0x4ed836
jmp 0x4ed817
inc word [ebp - 0x182]
jmp 0x4ed817
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 0x4ed80e
mov dx, word [ebp - 0x184]
mov word [ebp - 0x18a], dx
mov word [ebp - 0x186], 1
jmp 0x4ed817
mov word [ebp - 0x186], 0
inc ecx
cmp cx, 3
jb 0x4ed79b
jmp case.0x4edcf6.0
mov ecx, dword [esi + 0x1c]
xor dword [esi], ecx
mov eax, dword [esi + 4]
xor dword [esi], eax
jmp case.0x4edc06.8
xor ecx, ecx
movzx eax, cx
mov edx, eax
imul edx, eax
add edx, eax
inc edx
cmp edx, 0x15
jg 0x4ed865
je 0x4ed8e2
dec edx
je 0x4ed8a5
sub edx, 2
je 0x4ed8d2
sub edx, 4
je 0x4ed890
sub edx, 6
je 0x4ed8bc
jmp 0x4ed92c
sub edx, 0x1f
je 0x4ed881
sub edx, 0xc
je 0x4ed91d
sub edx, 0xe
je 0x4ed8fc
jmp 0x4ed92c
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
shr dword [ebp - 0x2c], 0x10
jmp 0x4ed92c
mov edx, dword [ebp - 0x20]
imul edx, dword [ebp - 0x1c]
and edx, 0xffff
mov dword [ebp - 0x28], edx
jmp 0x4ed92c
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 0x4ed92c
cmp dword [ebp - 0x18], 0
je 0x4ed92c
mov eax, dword [ebp - 0x18]
imul dword [ebp - 0x24]
and eax, 0xffff
add dword [ebp - 0x28], eax
jmp 0x4ed92c
mov dword [ebp - 0x20], 0x15a
mov dword [ebp - 0x24], 0x4e35
jmp 0x4ed92c
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 0x4ed92c
movzx edx, word [ebp - 0x186]
and edx, 0x80000001
jns 0x4ed910
dec edx
or edx, 0xfffffffe
inc edx
sub edx, 1
jb 0x4edbb0
je 0x4ed93c
jmp 0x4ed92c
and dword [ebp - 0x2c], 0x7fff
mov ax, word [ebp - 0x2c]
mov word [ebp - 0x32], ax
inc ecx
cmp cx, 8
jb 0x4ed838
jmp case.0x4eda34.0
xor ecx, ecx
movzx eax, cx
mov edx, eax
imul edx, eax
imul edx, eax
inc edx
cmp edx, 0x1c
jg 0x4ed969
je 0x4ed9c0
dec edx
je 0x4ed9fe
dec edx
je 0x4ed9ab
sub edx, 7
je case.default.0x4eda34
jmp 0x4edabf
sub edx, 0x41
je 0x4ed985
sub edx, 0x3d
je 0x4edaa5
sub edx, 0x5b
je 0x4eda23
jmp 0x4edabf
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 0x4edabf
movzx eax, word [ebp - 0x32]
mov ebx, 3
cdq
idiv ebx
mov word [ebp - 0x12], dx
jmp 0x4edabf
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 0x4ed9ef
mov word [ebp - 0x12], dx
inc edx
add eax, 2
cmp dx, 3
jb 0x4ed9db
jmp 0x4edabf
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 0x4edabf
movzx eax, word [ebp - 0x32]
mov ebx, 9
cdq
idiv ebx
cmp edx, 8
ja case.default.0x4eda34
jmp dword [edx*4 + 0x4eda3b]
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 0x4eda95
mov bx, word [ebp - 0xe]
mov word [ebp - 0x10], bx
inc word [ebp - 0xe]
add eax, 8
cmp word [ebp - 0xe], 3
jb 0x4eda80
jmp 0x4edabf
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 0x4ed93e
jmp case.0x4eda34.0
push 0x10
push 0
lea edx, [ebp - 0x48]
push edx
call fcn.004e910b
add esp, 0xc
lea ecx, [ebp - 0x48]
push ecx
call fcn.004ecbd8
pop ecx
jmp case.0x4edc06.8
xor ecx, ecx
movzx eax, cx
cmp eax, 5
ja case.default.0x4edafc
jmp dword [eax*4 + 0x4edb03]
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 0x4edb2b
inc word [ebp - 0xe]
add eax, 8
cmp word [ebp - 0xe], 3
jb 0x4edb27
jmp case.default.0x4edafc
mov word [ebp - 0x19a], 0
jmp case.default.0x4edafc
inc word [ebp - 0x194]
jmp case.default.0x4edafc
mov word [ebp - 0x18a], 0xffff
jmp case.default.0x4edafc
mov word [ebp - 0x182], 0
jmp case.default.0x4edafc
mov word [ebp - 0x184], 0
inc ecx
cmp cx, 6
jb 0x4edaf0
jmp case.0x4eda34.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.0x4edc06.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 0x4edbfa
mov dx, word [ebp - 0x184]
mov word [ebp - 0x18a], dx
mov word [ebp - 0x186], 1
jmp 0x4ed836
movzx ecx, word [ebp - 0x19a]
cmp ecx, 9
ja case.0x4edc06.3
jmp dword [ecx*4 + 0x4edc0d]
push dword [ebp - 0xc]
push esi
lea eax, [ebp - 0x180]
push eax
call fcn.004e90d0
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.004eb803
add esp, 0x10
jmp case.0x4edc06.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.004e90d0
add esp, 0xc
jmp case.0x4edc06.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 0x4edc8f
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 0x4edcc9
sub edx, 4
je 0x4edcd2
sub edx, 6
je 0x4edd23
sub edx, 8
je 0x4ed836
jmp case.default.0x4edcf6
inc word [ebp - 0x19a]
jmp case.default.0x4edcf6
mov dx, word [ebp - 0x19a]
cmp dx, word [ebp - 0x188]
jne case.default.0x4edcf6
movzx eax, word [ebp - 0x182]
mov ebx, 9
cdq
idiv ebx
cmp edx, 8
ja case.default.0x4edcf6
jmp dword [edx*4 + 0x4edcfd]
mov word [ebp - 0x186], 1
inc ecx
cmp cx, 4
jb 0x4edca3
xor edx, edx
lea eax, [esi + 0x1c]
mov cl, byte [eax]
inc edx
xor byte [eax - 0x18], cl
inc eax
cmp edx, 8
jb 0x4edd3c
jmp case.0x4edc06.8
cmp dword [esi], 0
jne 0x4eddac
mov eax, dword [ebp + 8]
mov edx, dword [eax]
cmp byte [edx], 1
jne 0x4edd74
push 4
lea ecx, [esi + 0xc]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
push dword [edx + 0xd]
call fcn.004e90d0
add esp, 0xc
jmp 0x4eddac
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
cmp byte [eax], 7
jne 0x4edd96
push 8
lea edx, [esi + 0xc]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
push dword [eax + 0xd]
call fcn.004e90d0
add esp, 0xc
jmp 0x4eddac
push 0x10
lea edx, [esi + 0xc]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
push dword [eax + 0xd]
call fcn.004e90d0
add esp, 0xc
mov eax, dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret