Function at 0x54cf50
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7075fe
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x114
mov edx, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x14], 0
xor esi, esi
cmp byte [0x991b00], 0
push edi
mov dword [ebp - 0x10], esi
je 0x54d434
cmp byte [0x7f1354], 0
je 0x54d069
mov ecx, dword [edx + 0x10]
sub esp, 8
cmp dword [edx + 0x14], 0x10
mov eax, esp
jb 0x54cfaa
mov edx, dword [edx]
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x30]
push eax
call fcn.004c4700
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 0
cmp eax, 8
jbe 0x54cfe7
push 0xffffffffffffffff
add eax, 0xfffffff8
lea ecx, [ebp - 0x30]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00486f10
mov byte [ebp - 4], 1
mov ebx, 1
jmp 0x54cfff
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x48]
call fcn.00470690
mov dword [ebp - 4], 2
mov ebx, 2
push 1
push 1
push eax
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x14], ebx
call fcn.004fa520
mov edx, eax
mov eax, dword [edx]
mov dword [ebp - 4], 3
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + edx + 0x14], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, edx
call fcn.0053f7b0
lea ecx, [ebp - 0x120]
call fcn.004fa6a0
test bl, 2
je 0x54d058
lea ecx, [ebp - 0x48]
and ebx, 0xfffffffd
call fcn.004716c0
test bl, 1
je 0x54d263
lea ecx, [ebp - 0x60]
jmp 0x54d25e
cmp byte [0x7f132c], 0
je 0x54d0b8
cmp dword [edx + 0x14], 0x10
mov eax, edx
jb 0x54d080
mov eax, dword [edx]
mov ecx, eax
jmp 0x54d082
mov ecx, edx
mov ebx, dword [edx + 0x10]
mov edi, eax
add ebx, ecx
cmp eax, ebx
je 0x54d489
movsx eax, byte [edi]
inc edi
imul esi, esi, 0xf8c9
add esi, eax
mov eax, 0x51eb851f
mul esi
shr edx, 5
imul eax, edx, 0x64
sub esi, eax
mov dword [ebp - 0x10], esi
cmp edi, ebx
jne 0x54d091
jmp 0x54d489
cmp byte [0x7f1334], 0
je 0x54d18b
mov ecx, dword [edx + 0x10]
sub esp, 8
cmp dword [edx + 0x14], 0x10
mov eax, esp
jb 0x54d0d5
mov edx, dword [edx]
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x30]
push eax
call fcn.004c4700
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 4
cmp eax, 6
jbe 0x54d112
push 0xffffffffffffffff
add eax, 0xfffffffa
lea ecx, [ebp - 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00486f10
mov byte [ebp - 4], 5
mov ebx, 4
jmp 0x54d12a
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x60]
call fcn.00470690
mov dword [ebp - 4], 6
mov ebx, 8
push 1
push 1
push eax
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x14], ebx
call fcn.004fa520
mov edx, eax
mov eax, dword [edx]
mov dword [ebp - 4], 7
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + edx + 0x14], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, edx
call fcn.0053f7b0
lea ecx, [ebp - 0x120]
call fcn.004fa6a0
test bl, 8
je 0x54d183
lea ecx, [ebp - 0x60]
and ebx, 0xfffffff7
call fcn.004716c0
test bl, 4
jmp 0x54d259
cmp byte [0x7f1344], 0
je 0x54d288
mov ecx, dword [edx + 0x10]
sub esp, 8
cmp dword [edx + 0x14], 0x10
mov eax, esp
jb 0x54d1a8
mov edx, dword [edx]
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x30]
push eax
call fcn.004c4700
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 8
cmp eax, 7
jbe 0x54d1e5
push 0xffffffffffffffff
add eax, 0xfffffff9
lea ecx, [ebp - 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00486f10
mov byte [ebp - 4], 9
mov ebx, 0x10
jmp 0x54d1fd
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x60]
call fcn.00470690
mov dword [ebp - 4], 0xa
mov ebx, 0x20
push 1
push 1
push eax
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x14], ebx
call fcn.004fa520
mov edx, eax
mov eax, dword [edx]
mov dword [ebp - 4], 0xb
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + edx + 0x14], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, edx
call fcn.0053f7b0
lea ecx, [ebp - 0x120]
call fcn.004fa6a0
test bl, 0x20
je 0x54d256
lea ecx, [ebp - 0x60]
and ebx, 0xffffffdf
call fcn.004716c0
test bl, 0x10
je 0x54d263
lea ecx, [ebp - 0x48]
call fcn.004716c0
mov ecx, dword [ebp - 0x10]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
imul eax, edx, 0xffffff9c
add ecx, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x30]
call fcn.004716c0
mov esi, dword [ebp - 0x10]
jmp 0x54d489
cmp byte [0x7f134c], 0
je 0x54d387
mov ecx, dword [edx + 0x10]
sub esp, 8
cmp dword [edx + 0x14], 0x10
mov eax, esp
jb 0x54d2a5
mov edx, dword [edx]
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x48]
push eax
call fcn.004c4700
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], 0xc
cmp eax, 8
jbe 0x54d2e2
push 0xffffffffffffffff
add eax, 0xfffffff8
lea ecx, [ebp - 0x48]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00486f10
mov byte [ebp - 4], 0xd
mov ebx, 0x40
jmp 0x54d2fa
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x60]
call fcn.00470690
mov dword [ebp - 4], 0xe
mov ebx, 0x80
push 1
push 1
push eax
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x14], ebx
call fcn.004fa520
mov edx, eax
mov eax, dword [edx]
mov dword [ebp - 4], 0xf
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + edx + 0x14], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, edx
call fcn.0053f7b0
lea ecx, [ebp - 0x120]
call fcn.004fa6a0
test bl, bl
jns 0x54d355
lea ecx, [ebp - 0x60]
and ebx, 0xffffff7f
call fcn.004716c0
test bl, 0x40
je 0x54d362
lea ecx, [ebp - 0x78]
call fcn.004716c0
mov ecx, dword [ebp - 0x10]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
imul eax, edx, 0xffffff9c
add ecx, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x48]
call fcn.004716c0
mov esi, dword [ebp - 0x10]
jmp 0x54d489
cmp byte [0x7f133c], 0
je 0x54d434
cmp dword [edx + 0x14], 0x10
mov edi, dword [edx + 0x10]
jb 0x54d39f
mov edx, dword [edx]
mov esi, edi
cmp edi, 4
jl 0x54d3e3
mov ebx, edi
shr ebx, 2
mov eax, ebx
neg eax
lea edi, [edi + eax*4]
nop dword [eax]
nop word [eax + eax]
imul ecx, dword [edx], 0x5bd1e995
add edx, 4
imul esi, esi, 0x5bd1e995
mov eax, ecx
shr eax, 0x18
xor eax, ecx
imul ecx, eax, 0x5bd1e995
xor esi, ecx
sub ebx, 1
jne 0x54d3c0
sub edi, 1
je 0x54d404
sub edi, 1
je 0x54d3fb
sub edi, 1
jne 0x54d40f
movzx eax, byte [edx + 2]
shl eax, 0x10
xor esi, eax
movzx eax, byte [edx + 1]
shl eax, 8
xor esi, eax
movzx eax, byte [edx]
xor eax, esi
imul esi, eax, 0x5bd1e995
mov eax, esi
shr eax, 0xd
xor eax, esi
imul esi, eax, 0x5bd1e995
mov eax, esi
shr eax, 0xf
xor esi, eax
mov eax, 0x51eb851f
mul esi
shr edx, 5
imul eax, edx, 0x64
sub esi, eax
jmp 0x54d489
cmp dword [edx + 0x14], 0x10
mov eax, edx
jb 0x54d442
mov eax, dword [edx]
mov ecx, eax
jmp 0x54d444
mov ecx, edx
mov ebx, dword [edx + 0x10]
mov edi, eax
add ebx, ecx
cmp eax, ebx
je 0x54d489
mov edx, 1
sub edx, eax
mov dword [ebp - 0x14], edx
nop dword [eax]
imul eax, esi, 0xf8c9
movsx esi, byte [edi]
add eax, edx
add esi, eax
mov eax, 0x51eb851f
add esi, edi
inc edi
mul esi
shr edx, 5
imul eax, edx, 0x64
mov edx, dword [ebp - 0x14]
sub esi, eax
mov dword [ebp - 0x10], esi
cmp edi, ebx
jne 0x54d460
mov eax, 0x51eb851f
mul esi
pop edi
shr edx, 5
imul ecx, edx, 0x64
sub esi, ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
mov dword fs:[0], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret