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

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0xa8
cmp dword [ebp + 0xc], 0
je 0xb41b44
mov edx, dword [ecx]
mov dword [ebp - 0x34], edx
mov edx, dword [ecx + 4]
mov dword [ebp - 0x48], edx
mov edx, dword [ecx + 8]
push ebx
push esi
mov esi, dword [ecx + 0x14]
mov dword [ebp - 0x50], edx
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x58], edx
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x44], esi
mov esi, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
push edi
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], ecx
movzx ecx, byte [eax]
movzx edi, byte [eax + 1]
shl edi, 0x10
shl ecx, 0x18
or ecx, edi
movzx edi, byte [eax + 2]
shl edi, 8
or ecx, edi
movzx edi, byte [eax + 3]
or ecx, edi
mov edi, edx
rol edi, 0x1a
mov ebx, edx
rol ebx, 0x15
xor edi, ebx
mov ebx, edx
rol ebx, 7
xor edi, ebx
add edi, ecx
mov ebx, edx
and edx, dword [ebp - 0x44]
not ebx
and ebx, esi
xor ebx, edx
mov edx, dword [ebp - 0x48]
add ebx, edi
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x60]
lea edi, [ebx + ecx + 0x428a2f98]
mov ecx, dword [ebp - 0x34]
xor edx, ecx
add esi, edi
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x48]
and edx, ecx
mov ebx, ecx
rol ebx, 0x1e
mov dword [ebp - 0x30], edx
mov edx, ecx
rol edx, 0x13
xor ebx, edx
rol ecx, 0xa
xor ebx, ecx
movzx ecx, byte [eax + 4]
mov edx, dword [ebp - 0x40]
and edx, dword [ebp - 0x50]
add ebx, edi
movzx edi, byte [eax + 5]
xor edx, dword [ebp - 0x30]
shl edi, 0x10
shl ecx, 0x18
or ecx, edi
movzx edi, byte [eax + 6]
shl edi, 8
or ecx, edi
movzx edi, byte [eax + 7]
or ecx, edi
dec dword [ebp + 0xc]
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa4], ecx
add edx, ebx
mov ebx, dword [ebp - 0x4c]
mov ecx, esi
rol ecx, 0x1a
mov edi, esi
rol edi, 0x15
xor ecx, edi
mov edi, esi
rol edi, 7
xor ecx, edi
add ecx, dword [ebp - 4]
mov edi, esi
not edi
and edi, dword [ebp - 0x44]
and ebx, esi
xor edi, ebx
add edi, ecx
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edx
lea ecx, [edi + ecx + 0x71374491]
mov dword [ebp - 4], ecx
mov edi, dword [ebp - 0x50]
add edi, ecx
mov ebx, edx
rol ebx, 0x1e
mov ecx, edx
rol ecx, 0x13
xor ebx, ecx
mov ecx, edx
rol ecx, 0xa
xor ebx, ecx
add ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0x40]
and ecx, edx
xor ecx, dword [ebp - 0x30]
and esi, edi
add ecx, ebx
movzx ebx, byte [eax + 9]
mov dword [ebp - 0xc], ecx
movzx ecx, byte [eax + 8]
shl ecx, 0x18
shl ebx, 0x10
or ecx, ebx
movzx ebx, byte [eax + 0xa]
shl ebx, 8
or ecx, ebx
movzx ebx, byte [eax + 0xb]
or ecx, ebx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa0], ecx
mov ecx, edi
rol ecx, 0x1a
mov ebx, edi
rol ebx, 0x15
xor ecx, ebx
mov ebx, edi
rol ebx, 7
xor ecx, ebx
add ecx, dword [ebp - 4]
mov ebx, edi
not ebx
and ebx, dword [ebp - 0x4c]
mov dword [ebp - 8], edi
xor ebx, esi
mov esi, dword [ebp - 0x48]
add ebx, ecx
mov ecx, dword [ebp - 0x44]
lea ecx, [ebx + ecx - 0x4a3f0431]
add esi, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0xc]
mov ebx, esi
mov ecx, esi
rol ebx, 0x1e
rol ecx, 0x13
xor ebx, ecx
mov ecx, esi
rol ecx, 0xa
xor ebx, ecx
mov ecx, dword [ebp - 0x34]
add ebx, dword [ebp - 4]
xor ecx, esi
mov esi, dword [ebp - 0x34]
and esi, dword [ebp - 0xc]
and ecx, edx
xor ecx, esi
movzx esi, byte [eax + 0xd]
add ecx, ebx
mov dword [ebp - 0x24], ecx
movzx ecx, byte [eax + 0xc]
shl esi, 0x10
shl ecx, 0x18
or ecx, esi
movzx esi, byte [eax + 0xe]
shl esi, 8
or ecx, esi
movzx esi, byte [eax + 0xf]
or ecx, esi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x18]
and edi, ecx
mov esi, ecx
rol esi, 0x1a
mov ebx, ecx
rol ebx, 0x15
xor esi, ebx
mov ebx, ecx
rol ebx, 7
xor esi, ebx
add esi, dword [ebp - 4]
mov ebx, ecx
mov ecx, dword [ebp - 0x4c]
not ebx
and ebx, dword [ebp - 0x10]
xor ebx, edi
mov edi, dword [ebp - 0x24]
add ebx, esi
mov esi, dword [ebp - 0x34]
lea ecx, [ebx + ecx - 0x164a245b]
add esi, ecx
mov ebx, edi
rol ebx, 0x1e
mov dword [ebp - 4], ecx
mov ecx, edi
rol ecx, 0x13
xor ebx, ecx
mov ecx, edi
rol ecx, 0xa
xor ebx, ecx
mov ecx, dword [ebp - 0xc]
xor ecx, edi
and ecx, edx
mov edx, dword [ebp - 0xc]
and edx, edi
movzx edi, byte [eax + 0x11]
add ebx, dword [ebp - 4]
xor ecx, edx
movzx edx, byte [eax + 0x10]
shl edi, 0x10
shl edx, 0x18
or edx, edi
movzx edi, byte [eax + 0x12]
shl edi, 8
or edx, edi
movzx edi, byte [eax + 0x13]
or edx, edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x98], edx
add ecx, ebx
mov ebx, dword [ebp - 0x18]
mov edx, esi
rol edx, 0x1a
mov edi, esi
rol edi, 0x15
xor edx, edi
mov edi, esi
rol edi, 7
xor edx, edi
add edx, dword [ebp - 4]
mov edi, esi
not edi
and edi, dword [ebp - 8]
and ebx, esi
xor edi, ebx
add edi, edx
mov edx, dword [ebp - 0x10]
lea edx, [edi + edx + 0x3956c25b]
add dword [ebp - 0x14], edx
mov dword [ebp - 4], edx
mov edi, ecx
rol edi, 0x1e
mov edx, ecx
rol edx, 0x13
xor edi, edx
mov edx, ecx
rol edx, 0xa
xor edi, edx
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], esi
add edi, dword [ebp - 4]
xor edx, ecx
and edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x24]
and ebx, ecx
xor edx, ebx
add edx, edi
movzx edi, byte [eax + 0x15]
mov dword [ebp - 0x10], edx
movzx edx, byte [eax + 0x14]
shl edx, 0x18
shl edi, 0x10
or edx, edi
movzx edi, byte [eax + 0x16]
shl edi, 8
or edx, edi
movzx edi, byte [eax + 0x17]
or edx, edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x14]
mov edi, edx
mov ebx, edx
rol edi, 0x1a
rol ebx, 0x15
xor edi, ebx
mov ebx, edx
rol ebx, 7
xor edi, ebx
add edi, dword [ebp - 4]
mov ebx, edx
and edx, esi
not ebx
and ebx, dword [ebp - 0x18]
xor ebx, edx
mov edx, dword [ebp - 8]
add ebx, edi
mov edi, dword [ebp - 0x10]
lea edx, [ebx + edx + 0x59f111f1]
add dword [ebp - 0xc], edx
mov dword [ebp - 4], edx
mov ebx, edi
rol ebx, 0x1e
mov edx, edi
rol edx, 0x13
xor ebx, edx
mov edx, edi
rol edx, 0xa
xor ebx, edx
add ebx, dword [ebp - 4]
mov edx, ecx
xor edx, edi
and edx, dword [ebp - 0x24]
mov edi, ecx
and edi, dword [ebp - 0x10]
xor edx, edi
movzx edi, byte [eax + 0x19]
add edx, ebx
mov dword [ebp - 8], edx
movzx edx, byte [eax + 0x18]
shl edx, 0x18
shl edi, 0x10
or edx, edi
movzx edi, byte [eax + 0x1a]
shl edi, 8
or edx, edi
movzx edi, byte [eax + 0x1b]
or edx, edi
mov edi, dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 0x90], edx
mov edx, edi
rol edx, 0x1a
mov ebx, edi
rol ebx, 0x15
xor edx, ebx
mov ebx, edi
rol ebx, 7
xor edx, ebx
mov ebx, edi
not ebx
add edx, dword [ebp - 4]
and ebx, esi
mov esi, dword [ebp - 0x14]
and esi, edi
xor ebx, esi
add ebx, edx
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
lea edx, [ebx + edx - 0x6dc07d5c]
add dword [ebp - 0x24], edx
mov dword [ebp - 4], edx
mov ebx, esi
rol ebx, 0x1e
mov edx, esi
rol edx, 0x13
xor ebx, edx
mov edx, esi
rol edx, 0xa
xor ebx, edx
add ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
xor edx, esi
mov esi, dword [ebp - 0x10]
and esi, dword [ebp - 8]
and edx, ecx
xor edx, esi
add edx, ebx
movzx esi, byte [eax + 0x1d]
mov dword [ebp - 0x18], edx
movzx edx, byte [eax + 0x1c]
shl edx, 0x18
shl esi, 0x10
or edx, esi
movzx esi, byte [eax + 0x1e]
shl esi, 8
or edx, esi
movzx esi, byte [eax + 0x1f]
or edx, esi
mov dword [ebp - 4], edx
mov dword [ebp - 0x8c], edx
mov edx, dword [ebp - 0x24]
mov esi, edx
mov ebx, edx
rol esi, 0x1a
rol ebx, 0x15
xor esi, ebx
mov ebx, edx
rol ebx, 7
xor esi, ebx
add esi, dword [ebp - 4]
and edi, edx
mov ebx, edx
mov edx, dword [ebp - 0x1c]
not ebx
and ebx, dword [ebp - 0x14]
xor ebx, edi
add ebx, esi
mov esi, dword [ebp - 0x18]
lea edx, [ebx + edx - 0x54e3a12b]
mov ebx, dword [ebp - 8]
add ecx, edx
mov dword [ebp - 4], edx
mov edi, esi
rol edi, 0x1e
mov edx, esi
rol edx, 0x13
xor edi, edx
mov edx, esi
rol edx, 0xa
xor edi, edx
mov edx, dword [ebp - 8]
add edi, dword [ebp - 4]
xor edx, esi
and edx, dword [ebp - 0x10]
and ebx, esi
movzx esi, byte [eax + 0x20]
xor edx, ebx
add edx, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
shl esi, 0x18
movzx edi, byte [eax + 0x21]
shl edi, 0x10
or esi, edi
movzx edi, byte [eax + 0x22]
shl edi, 8
or esi, edi
movzx edi, byte [eax + 0x23]
or esi, edi
mov dword [ebp - 4], esi
mov dword [ebp - 0x88], esi
mov ebx, dword [ebp - 0x24]
mov esi, ecx
rol esi, 0x1a
mov edi, ecx
rol edi, 0x15
xor esi, edi
mov edi, ecx
rol edi, 7
xor esi, edi
add esi, dword [ebp - 4]
and ebx, ecx
mov edi, ecx
not edi
and edi, dword [ebp - 0xc]
xor edi, ebx
add edi, esi
mov esi, dword [ebp - 0x14]
lea esi, [edi + esi - 0x27f85568]
mov edi, dword [ebp - 0x10]
add edi, esi
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x18]
xor esi, edx
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x18]
and esi, edx
mov dword [ebp - 0x28], esi
mov esi, edx
rol esi, 0x1e
mov ebx, edx
rol ebx, 0x13
xor esi, ebx
rol edx, 0xa
xor esi, edx
add esi, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
and edx, dword [ebp - 8]
mov ebx, ecx
xor edx, dword [ebp - 0x28]
and ebx, edi
add edx, esi
movzx esi, byte [eax + 0x25]
mov dword [ebp - 0x14], edx
movzx edx, byte [eax + 0x24]
shl esi, 0x10
shl edx, 0x18
or edx, esi
movzx esi, byte [eax + 0x26]
shl esi, 8
or edx, esi
movzx esi, byte [eax + 0x27]
or edx, esi
mov dword [ebp - 4], edx
mov dword [ebp - 0x84], edx
mov edx, edi
rol edx, 0x1a
mov esi, edi
rol esi, 0x15
xor edx, esi
mov esi, edi
rol esi, 7
xor edx, esi
add edx, dword [ebp - 4]
mov esi, edi
not esi
and esi, dword [ebp - 0x24]
mov dword [ebp - 0x10], edi
xor esi, ebx
add esi, edx
mov edx, dword [ebp - 0xc]
lea edx, [esi + edx + 0x12835b01]
add dword [ebp - 8], edx
mov esi, dword [ebp - 0x14]
mov dword [ebp - 4], edx
mov ebx, esi
rol ebx, 0x1e
mov edx, esi
rol edx, 0x13
xor ebx, edx
mov edx, esi
rol edx, 0xa
xor ebx, edx
add ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
and edx, esi
xor edx, dword [ebp - 0x28]
movzx esi, byte [eax + 0x28]
add edx, ebx
mov dword [ebp - 0xc], edx
movzx edx, byte [eax + 0x29]
shl edx, 0x10
mov ebx, dword [ebp - 8]
shl esi, 0x18
or esi, edx
movzx edx, byte [eax + 0x2a]
shl edx, 8
or esi, edx
movzx edx, byte [eax + 0x2b]
or esi, edx
mov edx, dword [ebp - 8]
rol edx, 0x1a
rol ebx, 0x15
xor edx, ebx
mov ebx, dword [ebp - 8]
rol ebx, 7
xor edx, ebx
mov ebx, dword [ebp - 8]
not ebx
and ebx, ecx
add edx, esi
mov ecx, edi
and ecx, dword [ebp - 8]
mov dword [ebp - 0x80], esi
mov esi, dword [ebp - 0x18]
xor ebx, ecx
mov ecx, dword [ebp - 0x24]
add ebx, edx
mov edx, dword [ebp - 0xc]
lea ecx, [ebx + ecx + 0x243185be]
add esi, ecx
mov dword [ebp - 4], ecx
mov ebx, edx
rol ebx, 0x1e
mov ecx, edx
rol ecx, 0x13
xor ebx, ecx
mov ecx, edx
rol ecx, 0xa
xor ebx, ecx
add ebx, dword [ebp - 4]
mov ecx, edx
and edx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
and ecx, dword [ebp - 0x14]
xor ecx, edx
movzx edx, byte [eax + 0x2c]
add ecx, ebx
movzx ebx, byte [eax + 0x2d]
shl ebx, 0x10
shl edx, 0x18
or edx, ebx
movzx ebx, byte [eax + 0x2e]
shl ebx, 8
or edx, ebx
movzx ebx, byte [eax + 0x2f]
or edx, ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x7c], edx
mov edx, esi
rol edx, 0x1a
mov ebx, esi
rol ebx, 0x15
xor edx, ebx
mov ebx, esi
rol ebx, 7
xor edx, ebx
add edx, dword [ebp - 4]
mov ebx, esi
not ebx
and ebx, edi
mov edi, dword [ebp - 8]
and edi, esi
xor ebx, edi
add ebx, edx
mov edx, dword [ebp - 0x20]
lea edx, [ebx + edx + 0x550c7dc3]
add dword [ebp - 0x1c], edx
mov dword [ebp - 4], edx
mov ebx, dword [ebp - 0xc]
and ebx, ecx
mov edi, ecx
rol edi, 0x1e
mov edx, ecx
rol edx, 0x13
xor edi, edx
mov edx, ecx
rol edx, 0xa
xor edi, edx
add edi, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
xor edx, ecx
and edx, dword [ebp - 0x14]
xor edx, ebx
add edx, edi
movzx edi, byte [eax + 0x31]
mov dword [ebp - 0x20], edx
movzx edx, byte [eax + 0x30]
shl edx, 0x18
shl edi, 0x10
or edx, edi
movzx edi, byte [eax + 0x32]
shl edi, 8
or edx, edi
movzx edi, byte [eax + 0x33]
or edx, edi
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 4], edx
mov dword [ebp - 0x78], edx
mov edx, edi
rol edx, 0x1a
mov ebx, edi
rol ebx, 0x15
xor edx, ebx
mov ebx, edi
rol ebx, 7
xor edx, ebx
add edx, dword [ebp - 4]
and esi, edi
mov ebx, edi
not ebx
and ebx, dword [ebp - 8]
xor ebx, esi
mov esi, dword [ebp - 0x20]
add ebx, edx
mov edx, dword [ebp - 0x10]
lea edx, [ebx + edx + 0x72be5d74]
add dword [ebp - 0x14], edx
mov dword [ebp - 4], edx
mov ebx, esi
rol ebx, 0x1e
mov edx, esi
rol edx, 0x13
xor ebx, edx
mov edx, esi
rol edx, 0xa
xor ebx, edx
mov edx, ecx
xor edx, esi
and edx, dword [ebp - 0xc]
mov esi, ecx
and esi, dword [ebp - 0x20]
xor edx, esi
add ebx, dword [ebp - 4]
movzx esi, byte [eax + 0x35]
add edx, ebx
mov dword [ebp - 0x10], edx
movzx edx, byte [eax + 0x34]
shl edx, 0x18
shl esi, 0x10
or edx, esi
movzx esi, byte [eax + 0x36]
shl esi, 8
or edx, esi
movzx esi, byte [eax + 0x37]
or edx, esi
mov dword [ebp - 4], edx
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x14]
mov esi, edx
rol esi, 0x1a
mov ebx, edx
rol ebx, 0x15
xor esi, ebx
mov ebx, edx
rol ebx, 7
xor esi, ebx
add esi, dword [ebp - 4]
mov ebx, edx
and edx, edi
not ebx
and ebx, dword [ebp - 0x18]
xor ebx, edx
mov edx, dword [ebp - 8]
add ebx, esi
mov esi, dword [ebp - 0x10]
lea edx, [ebx + edx - 0x7f214e02]
add dword [ebp - 0xc], edx
mov dword [ebp - 4], edx
mov ebx, esi
rol ebx, 0x1e
mov edx, esi
rol edx, 0x13
xor ebx, edx
mov edx, esi
rol edx, 0xa
xor ebx, edx
add ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
xor edx, esi
mov esi, dword [ebp - 0x20]
and esi, dword [ebp - 0x10]
and edx, ecx
xor edx, esi
movzx esi, byte [eax + 0x39]
add edx, ebx
mov dword [ebp - 8], edx
movzx edx, byte [eax + 0x38]
shl esi, 0x10
shl edx, 0x18
or edx, esi
movzx esi, byte [eax + 0x3a]
shl esi, 8
or edx, esi
movzx esi, byte [eax + 0x3b]
or edx, esi
mov dword [ebp - 4], edx
mov dword [ebp - 0x70], edx
mov edx, dword [ebp - 0xc]
mov esi, edx
rol esi, 0x1a
mov ebx, edx
rol ebx, 0x15
xor esi, ebx
mov ebx, edx
rol ebx, 7
xor esi, ebx
mov ebx, edx
not ebx
and ebx, edi
mov edi, dword [ebp - 0x14]
and edi, edx
xor ebx, edi
add esi, dword [ebp - 4]
add ebx, esi
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov edi, esi
lea edx, [ebx + edx - 0x6423f959]
add ecx, edx
rol edi, 0x1e
mov ebx, dword [ebp - 0x10]
and ebx, esi
mov dword [ebp - 4], edx
mov edx, esi
rol edx, 0x13
xor edi, edx
mov edx, esi
rol edx, 0xa
xor edi, edx
add edi, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
xor edx, esi
and edx, dword [ebp - 0x20]
movzx esi, byte [eax + 0x3c]
shl esi, 0x18
xor edx, ebx
add edx, edi
movzx edi, byte [eax + 0x3d]
shl edi, 0x10
or esi, edi
movzx edi, byte [eax + 0x3e]
shl edi, 8
or esi, edi
movzx edi, byte [eax + 0x3f]
or esi, edi
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 4], esi
mov dword [ebp - 0x6c], esi
mov esi, ecx
rol esi, 0x1a
mov edi, ecx
rol edi, 0x15
xor esi, edi
mov edi, ecx
rol edi, 7
xor esi, edi
add esi, dword [ebp - 4]
and ebx, ecx
mov edi, ecx
not edi
and edi, dword [ebp - 0x14]
push 0x11
xor edi, ebx
add edi, esi
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 8]
lea esi, [edi + esi - 0x3e640e8c]
add dword [ebp - 0x20], esi
mov dword [ebp - 4], esi
mov edi, edx
rol edi, 0x1e
mov esi, edx
rol esi, 0x13
xor edi, esi
mov esi, edx
rol esi, 0xa
xor edi, esi
mov esi, dword [ebp - 8]
add edi, dword [ebp - 4]
xor esi, edx
and esi, dword [ebp - 0x10]
and ebx, edx
xor esi, ebx
mov dword [ebp - 0x18], edx
add eax, 0x40
add esi, edi
pop edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x24], 0x10044814
mov esi, edx
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov dword [ebp - 0x3c], esi
mov esi, dword [esi]
mov dword [ebp - 4], esi
lea esi, [edx - 3]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov edi, dword [esi]
mov dword [ebp - 0x5c], esi
mov ebx, edi
lea esi, [edx - 1]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov dword [ebp - 0x40], esi
mov esi, edi
shr edi, 0xa
rol esi, 0xf
rol ebx, 0xd
xor esi, ebx
xor esi, edi
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 4]
rol ebx, 0x19
rol edi, 0xe
xor ebx, edi
mov edi, dword [ebp - 4]
shr edi, 3
xor ebx, edi
add esi, ebx
lea edi, [edx - 8]
and edi, 0xf
add esi, dword [ebp + edi*4 - 0xa8]
mov edi, dword [ebp - 0x40]
add esi, dword [edi]
mov dword [edi], esi
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x20]
mov edi, esi
rol edi, 0x1a
mov ebx, esi
rol ebx, 0x15
xor edi, ebx
mov ebx, esi
rol ebx, 7
xor edi, ebx
mov dword [ebp - 0x54], edi
mov edi, esi
not edi
and edi, dword [ebp - 0xc]
mov ebx, ecx
and ebx, esi
mov esi, dword [ebp - 0x54]
xor edi, ebx
add esi, edi
mov edi, dword [ebp - 0x24]
add esi, dword [edi - 4]
mov edi, dword [ebp - 0x18]
add esi, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
add dword [ebp - 0x10], esi
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x1c]
xor edi, esi
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x18]
and edi, esi
mov dword [ebp - 0x28], edi
mov edi, esi
mov ebx, esi
rol edi, 0x1e
rol ebx, 0x13
xor edi, ebx
rol esi, 0xa
xor edi, esi
mov esi, dword [ebp - 0x2c]
and esi, dword [ebp - 8]
add edi, dword [ebp - 4]
xor esi, dword [ebp - 0x28]
add esi, edi
mov dword [ebp - 0x14], esi
lea esi, [edx + 1]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov dword [ebp - 0x54], esi
mov esi, dword [esi]
mov dword [ebp - 4], esi
lea esi, [edx - 2]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov edi, dword [esi]
mov dword [ebp - 0x68], esi
mov esi, edi
rol esi, 0xf
mov ebx, edi
rol ebx, 0xd
xor esi, ebx
mov ebx, dword [ebp - 4]
shr edi, 0xa
xor esi, edi
mov edi, dword [ebp - 4]
rol ebx, 0x19
rol edi, 0xe
xor ebx, edi
mov edi, dword [ebp - 4]
shr edi, 3
xor ebx, edi
add esi, ebx
lea edi, [edx - 7]
and edi, 0xf
add esi, dword [ebp + edi*4 - 0xa8]
mov edi, dword [ebp - 0x3c]
add esi, dword [edi]
mov dword [edi], esi
mov dword [ebp - 0x38], esi
mov esi, dword [ebp - 0x10]
mov edi, esi
mov ebx, esi
mov dword [ebp - 4], esi
not dword [ebp - 4]
and dword [ebp - 4], ecx
rol edi, 0x1a
rol ebx, 0x15
xor edi, ebx
mov ebx, esi
rol ebx, 7
xor edi, ebx
add edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x20]
and ebx, esi
mov esi, dword [ebp - 4]
xor esi, ebx
add esi, edi
mov edi, dword [ebp - 0x24]
add esi, dword [edi]
mov edi, dword [ebp - 0x14]
add esi, dword [ebp - 0xc]
mov ebx, edi
add dword [ebp - 8], esi
mov dword [ebp - 4], esi
rol ebx, 0x1e
mov esi, edi
rol esi, 0x13
xor ebx, esi
mov esi, edi
rol esi, 0xa
xor ebx, esi
mov esi, dword [ebp - 0x2c]
add ebx, dword [ebp - 4]
and esi, edi
xor esi, dword [ebp - 0x28]
add esi, ebx
mov dword [ebp - 0xc], esi
lea esi, [edx + 2]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov dword [ebp - 0x28], esi
mov esi, dword [esi]
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x40]
mov edi, dword [esi]
mov esi, edi
rol esi, 0xf
mov ebx, edi
shr edi, 0xa
rol ebx, 0xd
xor esi, ebx
xor esi, edi
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 4]
rol ebx, 0x19
rol edi, 0xe
xor ebx, edi
mov edi, dword [ebp - 4]
shr edi, 3
xor ebx, edi
add esi, ebx
lea edi, [edx - 6]
and edi, 0xf
add esi, dword [ebp + edi*4 - 0xa8]
mov edi, dword [ebp - 0x54]
add esi, dword [edi]
mov dword [edi], esi
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 8]
mov edi, esi
rol edi, 0x1a
mov ebx, esi
rol ebx, 0x15
xor edi, ebx
mov ebx, esi
rol ebx, 7
xor edi, ebx
mov ebx, dword [ebp - 0x10]
and ebx, esi
mov dword [ebp - 0x38], edi
mov edi, esi
mov esi, dword [ebp - 0x38]
not edi
and edi, dword [ebp - 0x20]
xor edi, ebx
add esi, edi
mov edi, dword [ebp - 0x24]
add esi, dword [edi + 4]
add esi, dword [ebp - 0x2c]
add esi, ecx
add dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], esi
mov esi, ecx
rol esi, 0x1e
mov edi, ecx
rol edi, 0x13
xor esi, edi
mov edi, ecx
rol edi, 0xa
xor esi, edi
add esi, dword [ebp - 4]
mov edi, ecx
xor edi, dword [ebp - 0x1c]
and ecx, dword [ebp - 0x1c]
and edi, dword [ebp - 0x14]
xor ecx, edi
add ecx, esi
lea esi, [edx + 3]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov dword [ebp - 0x2c], esi
mov esi, dword [esi]
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x3c]
mov edi, dword [esi]
mov esi, edi
rol esi, 0xf
mov ebx, edi
rol ebx, 0xd
xor esi, ebx
mov ebx, dword [ebp - 4]
shr edi, 0xa
xor esi, edi
mov edi, dword [ebp - 4]
rol ebx, 0x19
rol edi, 0xe
xor ebx, edi
mov edi, dword [ebp - 4]
shr edi, 3
xor ebx, edi
add esi, ebx
lea edi, [edx - 5]
and edi, 0xf
add esi, dword [ebp + edi*4 - 0xa8]
mov edi, dword [ebp - 0x28]
add esi, dword [edi]
mov dword [edi], esi
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x18]
mov edi, esi
rol edi, 0x1a
mov ebx, esi
rol ebx, 0x15
xor edi, ebx
mov ebx, esi
rol ebx, 7
xor edi, ebx
mov ebx, dword [ebp - 8]
and ebx, esi
mov dword [ebp - 0x38], edi
mov edi, esi
mov esi, dword [ebp - 0x38]
not edi
and edi, dword [ebp - 0x10]
xor edi, ebx
add esi, edi
mov edi, dword [ebp - 0x24]
add esi, dword [edi + 8]
mov ebx, dword [ebp - 0xc]
add esi, dword [ebp - 0x3c]
mov edi, ecx
add esi, dword [ebp - 0x20]
and ebx, ecx
add dword [ebp - 0x1c], esi
mov dword [ebp - 4], esi
mov esi, ecx
rol esi, 0x1e
rol edi, 0x13
xor esi, edi
mov edi, ecx
rol edi, 0xa
xor esi, edi
add esi, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
xor edi, ecx
and edi, dword [ebp - 0x14]
xor edi, ebx
add edi, esi
lea esi, [edx + 4]
and esi, 0xf
lea esi, [ebp + esi*4 - 0xa8]
mov dword [ebp - 0x3c], esi
mov esi, dword [esi]
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x20], edi
mov edi, dword [esi]
mov esi, edi
rol esi, 0xf
mov ebx, edi
rol ebx, 0xd
xor esi, ebx
mov ebx, dword [ebp - 4]
shr edi, 0xa
xor esi, edi
mov edi, dword [ebp - 4]
rol ebx, 0x19
rol edi, 0xe
xor ebx, edi
mov edi, dword [ebp - 4]
shr edi, 3
xor ebx, edi
add edx, 0xfffffffc
add esi, ebx
and edx, 0xf
add esi, dword [ebp + edx*4 - 0xa8]
mov edx, dword [ebp - 0x2c]
add esi, dword [edx]
mov edi, dword [ebp - 0x1c]
mov dword [edx], esi
mov edx, edi
rol edx, 0x1a
mov ebx, edi
rol ebx, 0x15
xor edx, ebx
mov ebx, edi
rol ebx, 7
xor edx, ebx
mov ebx, dword [ebp - 0x18]
and ebx, dword [ebp - 0x1c]
not edi
and edi, dword [ebp - 8]
xor edi, ebx
add edx, edi
mov edi, dword [ebp - 0x24]
add edx, dword [edi + 0xc]
mov ebx, ecx
add edx, esi
add edx, dword [ebp - 0x10]
add dword [ebp - 0x14], edx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x20]
mov esi, edx
rol esi, 0x1e
mov edi, edx
rol edi, 0x13
xor esi, edi
and ebx, edx
mov edi, edx
rol edi, 0xa
xor esi, edi
add esi, dword [ebp - 4]
mov edi, ecx
xor edi, edx
and edi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x30]
xor edi, ebx
add edi, esi
mov esi, dword [ebp - 0x28]
add edx, 5
and edx, 0xf
mov dword [ebp - 0x10], edi
mov edi, dword [esi]
mov esi, edi
rol esi, 0xf
lea edx, [ebp + edx*4 - 0xa8]
mov ebx, edi
rol ebx, 0xd
xor esi, ebx
shr edi, 0xa
xor esi, edi
mov dword [ebp - 0x38], edx
mov edx, dword [edx]
mov edi, edx
mov ebx, edx
rol edi, 0x19
rol ebx, 0xe
xor edi, ebx
shr edx, 3
xor edi, edx
mov edx, dword [ebp - 0x5c]
add esi, edi
add esi, dword [edx]
mov edx, dword [ebp - 0x3c]
add esi, dword [edx]
mov edi, dword [ebp - 0x14]
mov dword [edx], esi
mov edx, edi
rol edx, 0x1a
mov ebx, edi
rol ebx, 0x15
xor edx, ebx
mov ebx, edi
rol ebx, 7
xor edx, ebx
mov ebx, edi
not ebx
and edi, dword [ebp - 0x1c]
and ebx, dword [ebp - 0x18]
xor ebx, edi
add edx, ebx
mov edi, dword [ebp - 0x24]
add edx, dword [edi + 0x10]
mov ebx, dword [ebp - 0x20]
add edx, esi
add edx, dword [ebp - 8]
add dword [ebp - 0xc], edx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x10]
mov esi, edx
rol esi, 0x1e
mov edi, edx
rol edi, 0x13
xor esi, edi
and ebx, edx
mov edi, edx
rol edi, 0xa
xor esi, edi
add esi, dword [ebp - 4]
mov edi, dword [ebp - 0x20]
xor edi, edx
mov edx, dword [ebp - 0x30]
and edi, ecx
xor edi, ebx
add edi, esi
mov esi, dword [ebp - 0x2c]
add edx, 6
and edx, 0xf
mov dword [ebp - 8], edi
mov edi, dword [esi]
mov esi, edi
mov ebx, edi
shr edi, 0xa
rol esi, 0xf
lea edx, [ebp + edx*4 - 0xa8]
rol ebx, 0xd
xor esi, ebx
xor esi, edi
mov dword [ebp - 0x5c], edx
mov edx, dword [edx]
mov edi, edx
rol edi, 0x19
mov ebx, edx
shr edx, 3
rol ebx, 0xe
xor edi, ebx
xor edi, edx
mov edx, dword [ebp - 0x38]
add esi, edi
add esi, dword [edx]
mov edi, dword [ebp - 0x68]
add esi, dword [edi]
mov edi, dword [ebp - 0xc]
mov dword [edx], esi
mov edx, edi
rol edx, 0x1a
mov ebx, edi
rol ebx, 0x15
xor edx, ebx
mov ebx, edi
rol ebx, 7
xor edx, ebx
mov ebx, dword [ebp - 0x14]
and ebx, dword [ebp - 0xc]
not edi
and edi, dword [ebp - 0x1c]
xor edi, ebx
add edx, edi
mov edi, dword [ebp - 0x24]
add edx, dword [edi + 0x14]
add edx, esi
add edx, dword [ebp - 0x18]
add ecx, edx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 8]
mov esi, edx
rol esi, 0x1e
mov edi, edx
rol edi, 0x13
xor esi, edi
mov ebx, dword [ebp - 0x10]
and ebx, edx
mov edi, edx
rol edi, 0xa
xor esi, edi
add esi, dword [ebp - 4]
mov edi, dword [ebp - 0x10]
xor edi, edx
and edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
xor edi, ebx
add edi, esi
mov esi, dword [ebp - 0x3c]
add edx, 7
mov dword [ebp - 0x18], edi
mov edi, dword [esi]
and edx, 0xf
mov edx, dword [ebp + edx*4 - 0xa8]
mov esi, edi
mov ebx, edi
shr edi, 0xa
rol esi, 0xf
rol ebx, 0xd
xor esi, ebx
xor esi, edi
mov edi, edx
rol edi, 0x19
mov ebx, edx
shr edx, 3
rol ebx, 0xe
xor edi, ebx
xor edi, edx
mov edx, dword [ebp - 0x40]
add esi, edi
add esi, dword [edx]
mov edx, dword [ebp - 0x5c]
add esi, dword [edx]
mov ebx, dword [ebp - 0xc]
mov dword [edx], esi
mov edx, ecx
rol edx, 0x1a
mov edi, ecx
rol edi, 0x15
xor edx, edi
mov edi, ecx
rol edi, 7
xor edx, edi
and ebx, ecx
mov edi, ecx
not edi
and edi, dword [ebp - 0x14]
xor edi, ebx
add edx, edi
mov edi, dword [ebp - 0x24]
add edx, dword [edi + 0x18]
mov ebx, dword [ebp - 8]
add edx, esi
add edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
add dword [ebp - 0x20], edx
mov dword [ebp - 4], edx
mov edx, esi
rol edx, 0x1e
mov edi, esi
rol edi, 0x13
xor edx, edi
mov edi, esi
rol edi, 0xa
xor edx, edi
mov edi, dword [ebp - 8]
add edx, dword [ebp - 4]
xor edi, esi
and edi, dword [ebp - 0x10]
and ebx, esi
xor edi, ebx
add edi, edx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edi
add edx, 8
add dword [ebp - 0x24], 0x20
lea edi, [edx - 1]
mov dword [ebp - 0x30], edx
cmp edi, 0x40
jl 0xb414db
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 0x34], edx
add dword [ebp - 0x48], esi
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x64]
add esi, dword [ebp - 0xc]
mov dword [edi], edx
mov edx, dword [ebp - 0x48]
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x50]
add edx, dword [ebp - 8]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x50], edx
mov dword [edi + 8], edx
mov edx, dword [ebp - 0x58]
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x58], edx
mov dword [edi + 0xc], edx
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x20]
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x4c], edx
mov dword [edi + 0x10], edx
mov dword [edi + 0x18], esi
mov dword [ebp - 0x60], ecx
mov dword [edi + 0x1c], ecx
jne 0xb40c31
pop edi
pop esi
pop ebx
leave
ret