Function at 0x408680
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x586420]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x108], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x11c], edx
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x120], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x12c], edx
mov edx, dword [ecx + 0x14]
push ebx
mov dword [ebp - 0x124], eax
mov eax, dword [ecx + 0x18]
push esi
mov dword [ebp - 0x118], edx
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x114], eax
push edi
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x110], edx
lea eax, [ecx + 0x68]
lea ebx, [ecx + 0x20]
xor esi, esi
jmp 0x4086f0
mov edx, dword [ebx]
mov ecx, edx
mov edi, edx
shr edi, 0x10
and ecx, 0xff0000
or ecx, edi
mov edi, edx
and edx, 0xff00
shl edi, 0x10
or edi, edx
mov edx, dword [esi + 0x57c0f8]
shr ecx, 8
shl edi, 8
or ecx, edi
xor edx, ecx
xor dword [eax], edx
mov dword [ebp + esi - 0x104], ecx
call fcn.004084e0
add esi, 4
add ebx, 4
cmp esi, 0x40
jl 0x4086f0
mov dword [ebp - 0x128], 0
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x124]
xor ecx, dword [ebp - 0x12c]
mov dword [eax], ecx
call fcn.004084e0
mov ebx, dword [eax]
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408778
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x40878f
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x4087b6
dec ecx
je 0x4087ae
dec ecx
je 0x4087a6
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x10c], ecx
jmp 0x4087c4
xor edx, dword [ebp - 0x114]
jmp 0x4087be
or edx, dword [ebp - 0x114]
jmp 0x4087be
not edx
and edx, dword [ebp - 0x114]
mov dword [ebp - 0x10c], edx
mov ebx, dword [eax]
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x4087e0
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x4087f7
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408818
dec ecx
je 0x408810
dec ecx
je 0x408808
mov ecx, dword [ebp - 0x118]
jmp 0x408822
xor edx, dword [ebp - 0x118]
jmp 0x408820
or edx, dword [ebp - 0x118]
jmp 0x408820
not edx
and edx, dword [ebp - 0x118]
mov ecx, edx
mov ebx, dword [eax]
mov esi, edi
not esi
and esi, dword [ebp - 0x10c]
and ecx, edi
xor esi, ecx
mov ecx, dword [ebp - 0x128]
add esi, dword [ecx + 0x57c0f8]
add esi, dword [ebp + ecx - 0x104]
add esi, dword [ebp - 0x110]
call fcn.004084e0
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
and ecx, 0x8000001f
jns 0x408865
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x40887c
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408891
dec ecx
je 0x40888d
dec ecx
je 0x408889
mov edx, edi
jmp 0x408895
xor edx, edi
jmp 0x408895
or edx, edi
jmp 0x408895
not edx
and edx, edi
mov ebx, dword [eax]
mov ecx, edx
ror ecx, 0xb
mov edi, edx
rol edi, 7
xor ecx, edi
ror edx, 6
xor ecx, edx
add ecx, esi
mov dword [ebp - 0x10c], ecx
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x4088ca
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x4088e1
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408908
dec ecx
je 0x408900
dec ecx
je 0x4088f8
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x110], ecx
jmp 0x408916
xor edx, dword [ebp - 0x120]
jmp 0x408910
or edx, dword [ebp - 0x120]
jmp 0x408910
not edx
and edx, dword [ebp - 0x120]
mov dword [ebp - 0x110], edx
mov ebx, dword [eax]
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408932
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408949
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x40896a
dec ecx
je 0x408962
dec ecx
je 0x40895a
mov esi, dword [ebp - 0x11c]
jmp 0x408974
xor edx, dword [ebp - 0x11c]
jmp 0x408972
or edx, dword [ebp - 0x11c]
jmp 0x408972
not edx
and edx, dword [ebp - 0x11c]
mov esi, edx
mov ebx, dword [eax]
call fcn.004084e0
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
and ecx, 0x8000001f
jns 0x408990
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x4089a7
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x4089c8
dec ecx
je 0x4089c0
dec ecx
je 0x4089b8
mov edx, dword [ebp - 0x108]
jmp 0x4089d0
xor edx, dword [ebp - 0x108]
jmp 0x4089d0
or edx, dword [ebp - 0x108]
jmp 0x4089d0
not edx
and edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x110]
mov ebx, dword [eax]
mov edi, esi
xor edi, ecx
and edi, edx
and esi, ecx
xor edi, esi
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x4089fc
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408a13
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408a34
dec ecx
je 0x408a2c
dec ecx
je 0x408a24
mov ecx, dword [ebp - 0x108]
jmp 0x408a3e
xor edx, dword [ebp - 0x108]
jmp 0x408a3c
or edx, dword [ebp - 0x108]
jmp 0x408a3c
not edx
and edx, dword [ebp - 0x108]
mov ecx, edx
mov ebx, dword [eax]
mov esi, ecx
mov edx, ecx
ror esi, 0xd
rol edx, 0xa
xor esi, edx
mov edx, dword [ebp - 0x118]
ror ecx, 2
xor esi, ecx
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x110], ecx
mov ecx, dword [ebp - 0x124]
add esi, edi
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x118], ecx
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408a91
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408aa8
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408ac9
dec ecx
je 0x408ac1
dec ecx
je 0x408ab9
mov edx, dword [ebp - 0x10c]
jmp 0x408ad1
xor edx, dword [ebp - 0x10c]
jmp 0x408ad1
or edx, dword [ebp - 0x10c]
jmp 0x408ad1
not edx
and edx, dword [ebp - 0x10c]
add edx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x11c]
add esi, dword [ebp - 0x10c]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x120], ecx
mov ecx, dword [ebp - 0x128]
add ecx, 4
mov dword [ebp - 0x12c], edx
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x108], esi
mov dword [ebp - 0x128], ecx
cmp ecx, 0x40
jl 0x408741
mov dword [ebp - 0x128], 0
nop
mov ecx, dword [ebp - 0x110]
add ecx, dword [ebp - 0x12c]
xor dword [eax], ecx
call fcn.004084e0
mov esi, dword [ebp - 0x128]
mov edx, dword [ebp + esi - 0x100]
mov ecx, dword [ebp + esi - 0xcc]
lea esi, [ebp + esi - 0x100]
mov edi, edx
mov ebx, edx
rol edi, 0xe
ror ebx, 7
xor edi, ebx
shr edx, 3
xor edi, edx
mov edx, ecx
mov ebx, ecx
rol edx, 0xf
rol ebx, 0xd
shr ecx, 0xa
xor edx, ebx
mov ebx, dword [eax]
xor edx, ecx
mov ecx, dword [esi - 4]
add edi, edx
add edi, dword [esi + 0x20]
add ecx, edi
mov dword [ebp - 0x134], ecx
mov dword [esi + 0x3c], ecx
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408baf
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408bc6
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408bed
dec ecx
je 0x408be5
dec ecx
je 0x408bdd
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x10c], ecx
jmp 0x408bfb
xor edx, dword [ebp - 0x114]
jmp 0x408bf5
or edx, dword [ebp - 0x114]
jmp 0x408bf5
not edx
and edx, dword [ebp - 0x114]
mov dword [ebp - 0x10c], edx
mov ebx, dword [eax]
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408c17
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408c2e
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408c4f
dec ecx
je 0x408c47
dec ecx
je 0x408c3f
mov ecx, dword [ebp - 0x118]
jmp 0x408c59
xor edx, dword [ebp - 0x118]
jmp 0x408c57
or edx, dword [ebp - 0x118]
jmp 0x408c57
not edx
and edx, dword [ebp - 0x118]
mov ecx, edx
mov edi, dword [ebp - 0x124]
mov ebx, dword [eax]
mov esi, edi
not esi
and esi, dword [ebp - 0x10c]
and ecx, edi
xor esi, ecx
mov ecx, dword [ebp - 0x128]
add esi, dword [ecx + 0x57c138]
add esi, dword [ebp - 0x134]
add esi, dword [ebp - 0x110]
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408ca1
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408cb8
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408ccd
dec ecx
je 0x408cc9
dec ecx
je 0x408cc5
mov edx, edi
jmp 0x408cd1
xor edx, edi
jmp 0x408cd1
or edx, edi
jmp 0x408cd1
not edx
and edx, edi
mov ebx, dword [eax]
mov ecx, edx
ror ecx, 0xb
mov edi, edx
rol edi, 7
xor ecx, edi
ror edx, 6
xor ecx, edx
add ecx, esi
mov dword [ebp - 0x10c], ecx
call fcn.004084e0
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
and ecx, 0x8000001f
jns 0x408d06
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408d1d
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408d3e
dec ecx
je 0x408d36
dec ecx
je 0x408d2e
mov edx, dword [ebp - 0x120]
jmp 0x408d46
xor edx, dword [ebp - 0x120]
jmp 0x408d46
or edx, dword [ebp - 0x120]
jmp 0x408d46
not edx
and edx, dword [ebp - 0x120]
mov ebx, dword [eax]
mov dword [ebp - 0x110], edx
call fcn.004084e0
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
and ecx, 0x8000001f
jns 0x408d68
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408d7f
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408da0
dec ecx
je 0x408d98
dec ecx
je 0x408d90
mov esi, dword [ebp - 0x11c]
jmp 0x408daa
xor edx, dword [ebp - 0x11c]
jmp 0x408da8
or edx, dword [ebp - 0x11c]
jmp 0x408da8
not edx
and edx, dword [ebp - 0x11c]
mov esi, edx
mov ebx, dword [eax]
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408dc6
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408ddd
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408dfe
dec ecx
je 0x408df6
dec ecx
je 0x408dee
mov edx, dword [ebp - 0x108]
jmp 0x408e06
xor edx, dword [ebp - 0x108]
jmp 0x408e06
or edx, dword [ebp - 0x108]
jmp 0x408e06
not edx
and edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x110]
mov ebx, dword [eax]
mov edi, esi
xor edi, ecx
and edi, edx
and esi, ecx
xor edi, esi
call fcn.004084e0
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
and ecx, 0x8000001f
jns 0x408e32
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408e49
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408e6a
dec ecx
je 0x408e62
dec ecx
je 0x408e5a
mov ecx, dword [ebp - 0x108]
jmp 0x408e74
xor edx, dword [ebp - 0x108]
jmp 0x408e72
or edx, dword [ebp - 0x108]
jmp 0x408e72
not edx
and edx, dword [ebp - 0x108]
mov ecx, edx
mov ebx, dword [eax]
mov esi, ecx
mov edx, ecx
ror esi, 0xd
rol edx, 0xa
xor esi, edx
mov edx, dword [ebp - 0x118]
ror ecx, 2
xor esi, ecx
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x110], ecx
mov ecx, dword [ebp - 0x124]
add esi, edi
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x118], ecx
call fcn.004084e0
mov edx, ebx
shr edx, 8
movzx ecx, dl
and ecx, 0x8000001f
jns 0x408ec7
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
movzx ecx, bl
and ecx, 0x80000003
jns 0x408ede
dec ecx
or ecx, 0xfffffffc
inc ecx
dec ecx
je 0x408eff
dec ecx
je 0x408ef7
dec ecx
je 0x408eef
mov edx, dword [ebp - 0x10c]
jmp 0x408f07
xor edx, dword [ebp - 0x10c]
jmp 0x408f07
or edx, dword [ebp - 0x10c]
jmp 0x408f07
not edx
and edx, dword [ebp - 0x10c]
add edx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x11c]
add esi, dword [ebp - 0x10c]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x120], ecx
mov ecx, dword [ebp - 0x128]
add ecx, 4
mov dword [ebp - 0x12c], edx
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x108], esi
mov dword [ebp - 0x128], ecx
cmp ecx, 0xc0
jl 0x408b30
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x11c]
add dword [eax + 4], ecx
mov ecx, dword [ebp - 0x12c]
add dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x118]
add dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x110]
add dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 4]
mov edx, esi
add dword [eax], edx
mov edx, dword [ebp - 0x120]
add dword [eax + 8], edx
mov edx, dword [ebp - 0x124]
add dword [eax + 0x10], edx
mov edx, dword [ebp - 0x114]
add dword [eax + 0x18], edx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0052abef
mov esp, ebp
pop ebp
ret