Function at 0x4537e0
Capabilities:
Encode data using xor
Hash data using murmur3
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1ec
mov eax, dword [0x586420]
xor eax, esp
mov dword [esp + 0x1e8], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x208]
mov ebx, 0x80
push ebx
lea eax, [esp + 0x7c]
push 0
push eax
call fcn.0052acb6
mov esi, dword [esp + 0x218]
push esi
lea ecx, [esp + 0x88]
push edi
push ecx
call fcn.0052acbc
add esp, 0x18
cmp esi, 0x54
jne 0x453843
or dword [esp + 0xcc], ebx
mov dword [esp + 0xf4], 0x2a0
jmp 0x45385a
cmp esi, 0x50
jne 0x45385a
or dword [esp + 0xc8], ebx
mov dword [esp + 0xf4], 0x280
xor ecx, ecx
lea esp, [esp]
mov eax, dword [esp + ecx*4 + 0x78]
mov edx, eax
shl edx, 0x10
mov esi, eax
and esi, 0xff00
or edx, esi
movzx esi, byte [esp + ecx*4 + 0x7b]
shl edx, 8
shr eax, 8
or edx, esi
and eax, 0xff00
or edx, eax
mov dword [esp + ecx*4 + 0x78], edx
inc ecx
cmp ecx, 0x1f
jl 0x453860
mov ecx, 0x10
lea esi, [esp + 0x78]
lea edi, [esp + 0xf8]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x130]
mov dword [esp + 0x10], 0xc
mov ecx, dword [eax]
mov esi, dword [eax - 0x34]
mov edx, ecx
rol edx, 0xf
mov edi, ecx
rol edi, 0xd
xor edx, edi
shr ecx, 0xa
xor edx, ecx
mov ecx, esi
rol ecx, 0xe
mov edi, esi
ror edi, 7
xor ecx, edi
mov edi, esi
shr edi, 3
xor ecx, edi
mov edi, dword [eax - 0x30]
add edx, ecx
add edx, dword [eax - 0x38]
mov ecx, dword [eax - 0x14]
add ecx, edx
mov edx, dword [eax + 4]
mov ebx, edi
rol ebx, 0xe
mov ebp, edi
shr edi, 3
ror ebp, 7
xor ebx, ebp
xor ebx, edi
mov edi, edx
rol edi, 0xf
mov ebp, edx
shr edx, 0xa
rol ebp, 0xd
xor edi, ebp
xor edx, edi
add edx, ebx
add edx, dword [eax - 0x10]
mov edi, ecx
add edx, esi
mov esi, dword [eax - 0x2c]
rol edi, 0xf
mov ebx, ecx
rol ebx, 0xd
xor edi, ebx
mov dword [eax + 8], ecx
shr ecx, 0xa
xor edi, ecx
mov ecx, esi
rol ecx, 0xe
mov ebx, esi
ror ebx, 7
xor ecx, ebx
mov ebx, esi
shr ebx, 3
xor ecx, ebx
add edi, ecx
add edi, dword [eax - 0xc]
mov ecx, dword [eax - 0x28]
add edi, dword [eax - 0x30]
mov ebx, edx
mov dword [eax + 0x10], edi
mov edi, edx
rol edi, 0xf
rol ebx, 0xd
xor edi, ebx
mov dword [eax + 0xc], edx
shr edx, 0xa
xor edi, edx
mov edx, ecx
rol edx, 0xe
mov ebx, ecx
ror ebx, 7
xor edx, ebx
shr ecx, 3
xor edx, ecx
add edi, edx
add edi, dword [eax - 8]
add edi, esi
mov dword [eax + 0x14], edi
add eax, 0x10
dec dword [esp + 0x10]
jne 0x4538b2
mov ecx, dword [0x582130]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [0x582134]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x582138]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [0x58213c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [0x582140]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [0x582144]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x582148]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [0x58214c]
xor eax, eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov edi, eax
mov ebx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], ecx
jmp 0x453a10
mov edx, dword [ecx + 0x582150]
xor edx, dword [esp + ecx + 0xf8]
xor eax, edx
mov esi, eax
shr esi, 4
xor esi, eax
and esi, 0xf0f0f0f
mov ecx, esi
shr ecx, 0x18
mov edx, eax
ror edx, cl
xor edi, edx
mov ecx, edi
shr ecx, 0x10
xor ecx, edi
movzx ebp, cx
mov edx, ebp
shr edx, 8
mov dword [esp + 0x18], ebp
xor dl, byte [esp + 0x18]
mov cl, dl
shr dl, 4
and cl, 0xf
xor cl, dl
mov byte [esp + 0x17], dl
mov dl, cl
and dl, 3
add dl, dl
add dl, dl
xor dl, cl
and dl, 0xfc
add dl, dl
mov cl, 0x18
sub cl, dl
movzx ebp, cl
mov ecx, ebp
lea edx, [esi + 0x1010101]
shr edx, cl
movzx ecx, dl
mov edx, eax
ror edx, cl
mov ecx, ebp
shr ebp, 4
shr ecx, 3
and ebp, 1
neg ebp
and ecx, 1
mov dword [esp + 0x10], ebp
neg ecx
mov ebp, edx
not ecx
not ebp
mov dword [esp + 0x18], ecx
or ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
mov ebp, ebx
not ebp
and ecx, ebp
and ecx, edx
mov edx, dword [esp + 0x1c]
and edx, ebx
or ecx, edx
mov edx, dword [esp + 0x10]
test dword [esp + 0x18], edx
je 0x453acc
add ebx, dword [esp + 0x1c]
jmp 0x453ace
mov ebx, ecx
mov ecx, ebx
xor ecx, edi
mov edx, ecx
shr edx, 0x10
xor edx, ecx
movzx ebp, dx
mov edx, ebp
shr edx, 8
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], ebp
xor dl, byte [esp + 0x18]
mov cl, dl
shr dl, 4
and cl, 0xf
xor cl, dl
mov byte [esp + 0x17], dl
mov dl, cl
and dl, 3
add dl, dl
add dl, dl
xor dl, cl
and dl, 0xfc
add dl, dl
mov cl, 0x18
sub cl, dl
movzx ebp, cl
mov ecx, ebp
lea edx, [esi + 0x2020202]
shr edx, cl
mov esi, ebp
shr esi, 3
shr ebp, 4
movzx ecx, dl
mov edx, eax
ror edx, cl
and esi, 1
and ebp, 1
neg ebp
mov ecx, edx
not ecx
mov dword [esp + 0x1c], ecx
neg esi
not esi
mov dword [esp + 0x10], ebp
mov ecx, esi
or ecx, ebp
mov ebp, dword [esp + 0x34]
not ebp
and ecx, ebp
mov ebp, dword [esp + 0x1c]
and ecx, edx
mov edx, dword [esp + 0x34]
and ebp, edx
or ecx, ebp
test dword [esp + 0x10], esi
je 0x453b69
mov ecx, dword [esp + 0x1c]
add ecx, edx
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x20]
add ecx, 4
xor eax, edx
mov dword [esp + 0x20], ecx
cmp ecx, 0x40
jl 0x453a10
mov dword [esp + 0x18], 0
jmp 0x453b9f
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x74]
xor eax, dword [esp + 0x64]
mov ebp, eax
mov edx, ebp
shr edx, 4
xor edx, ebp
and edx, 0xf0f0f0f
mov ecx, edx
shr ecx, 0x18
ror eax, cl
xor edi, eax
mov ecx, edi
shr ecx, 0x10
xor ecx, edi
movzx eax, cx
mov ecx, eax
shr ecx, 8
xor cl, al
mov al, cl
shr cl, 4
and al, 0xf
xor al, cl
mov cl, al
and cl, 3
add cl, cl
add cl, cl
xor cl, al
and cl, 0xfc
add cl, cl
mov al, 0x18
sub al, cl
movzx esi, al
mov ecx, esi
lea eax, [edx + 0x1010101]
shr eax, cl
mov dword [esp + 0x2c], edi
movzx ecx, al
mov eax, ebp
ror eax, cl
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov eax, esi
shr eax, 3
shr esi, 4
and eax, 1
not ecx
and esi, 1
mov dword [esp + 0x1c], ecx
neg esi
neg eax
not eax
mov dword [esp + 0x10], esi
mov ecx, eax
or ecx, esi
mov esi, ebx
not esi
and ecx, esi
and ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
and esi, ebx
add ebx, dword [esp + 0x1c]
or ecx, esi
test dword [esp + 0x10], eax
je 0x453c4d
mov ecx, ebx
mov ebx, ecx
mov dword [esp + 0x30], ecx
xor ebx, edi
mov ecx, ebx
shr ecx, 0x10
xor ecx, ebx
movzx ecx, cx
mov eax, ecx
shr eax, 8
xor al, cl
mov cl, al
shr al, 4
and cl, 0xf
xor cl, al
mov al, cl
and al, 3
add al, al
add al, al
xor al, cl
and al, 0xfc
add al, al
mov cl, 0x18
sub cl, al
movzx esi, cl
mov ecx, esi
add edx, 0x2020202
shr edx, cl
movzx ecx, dl
mov edx, ebp
ror edx, cl
mov ecx, esi
shr ecx, 3
shr esi, 4
and ecx, 1
and esi, 1
neg esi
neg ecx
not ecx
mov dword [esp + 0x10], esi
mov eax, ecx
or eax, esi
mov esi, dword [esp + 0x34]
not esi
and eax, esi
mov edi, edx
not edi
and eax, edx
mov edx, dword [esp + 0x34]
mov esi, edi
and esi, edx
or eax, esi
add edi, edx
test dword [esp + 0x10], ecx
je 0x453cd4
mov eax, edi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x582150]
mov edx, dword [esp + esi + 0xf8]
add ebx, eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
push eax
push ecx
push edx
lea eax, [esp + 0x64]
xor ebp, ebx
push eax
mov dword [esp + 0x38], ebp
call fcn.00452910
add esi, 4
add esp, 0x10
mov dword [esp + 0x18], esi
cmp esi, 0x40
jl 0x453b93
mov dword [esp + 0x18], 0
lea ecx, [ecx]
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0x64]
mov edi, dword [esp + 0x28]
xor edi, edx
mov eax, edi
shr eax, 4
xor eax, edi
and eax, 0xf0f0f0f
mov ecx, eax
shr ecx, 0x18
mov edx, edi
ror edx, cl
mov ecx, dword [esp + 0x2c]
xor ecx, edx
mov edx, ecx
shr edx, 0x10
xor edx, ecx
mov dword [esp + 0x2c], ecx
movzx edx, dx
mov ecx, edx
shr ecx, 8
xor cl, dl
mov dl, cl
shr cl, 4
and dl, 0xf
xor dl, cl
mov cl, dl
and cl, 3
add cl, cl
add cl, cl
xor cl, dl
and cl, 0xfc
add cl, cl
mov dl, 0x18
sub dl, cl
movzx esi, dl
mov ecx, esi
mov ebx, esi
lea edx, [eax + 0x1010101]
shr edx, cl
shr ebx, 3
shr esi, 4
and ebx, 1
movzx ecx, dl
and esi, 1
neg esi
neg ebx
mov ebp, esi
mov edx, edi
ror edx, cl
not ebx
mov dword [esp + 0x10], ebp
mov ecx, ebx
or ecx, ebp
mov ebp, dword [esp + 0x30]
not ebp
and ecx, ebp
mov esi, edx
not esi
and ecx, edx
mov edx, dword [esp + 0x30]
mov ebp, esi
and ebp, edx
or ecx, ebp
add esi, edx
test dword [esp + 0x10], ebx
je 0x453dd0
mov ecx, esi
mov ebp, ecx
xor ebp, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov ecx, ebp
shr ecx, 0x10
xor ecx, ebp
movzx edx, cx
mov ecx, edx
shr ecx, 8
xor cl, dl
mov dl, cl
shr cl, 4
and dl, 0xf
xor dl, cl
mov cl, dl
and cl, 3
add cl, cl
add cl, cl
xor cl, dl
and cl, 0xfc
add cl, cl
mov dl, 0x18
sub dl, cl
movzx edx, dl
add eax, 0x2020202
mov ecx, edx
shr eax, cl
mov esi, edi
movzx ecx, al
ror esi, cl
mov ecx, edx
shr ecx, 3
shr edx, 4
and ecx, 1
and edx, 1
neg ecx
neg edx
not ecx
mov dword [esp + 0x10], edx
mov eax, ecx
or eax, edx
mov edx, dword [esp + 0x34]
mov ebx, esi
not edx
and eax, edx
mov edx, dword [esp + 0x34]
and eax, esi
not ebx
mov esi, ebx
and esi, edx
or eax, esi
add ebx, edx
test dword [esp + 0x10], ecx
je 0x453e5a
mov eax, ebx
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x582190]
mov edx, dword [esp + esi + 0x138]
add ebp, eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
push eax
push ecx
push edx
lea eax, [esp + 0x64]
xor edi, ebp
push eax
mov dword [esp + 0x38], edi
call fcn.00452910
add esi, 4
add esp, 0x10
mov dword [esp + 0x18], esi
cmp esi, 0xc0
jl 0x453d20
mov eax, dword [esp + 0x60]
add dword [esp + 0x40], eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
add dword [esp + 0x38], ecx
add dword [esp + 0x3c], edx
add dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
add dword [esp + 0x44], ecx
add dword [esp + 0x48], edx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
add dword [esp + 0x50], ecx
add dword [esp + 0x54], edx
push 1
push 0
push 0x10
lea eax, [esp + 0x34]
push eax
push 0x58ddc4
call fcn.00461ffe
push 1
push 0
push 0x20
lea ecx, [esp + 0x44]
push ecx
push 0x58dd80
call fcn.00461ffe
push 1
push 0
push 0x40
lea edx, [esp + 0xc4]
push edx
push 0x58dd40
call fcn.00461ffe
mov ecx, dword [esp + 0x1f8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0052abef
add esp, 0x1ec
ret