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

Disassembly:
mov eax, 0x84
call fcn.5908a310
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
mov edx, ecx
dec ecx
test edx, edx
je 0x590ff5f7
mov edx, dword [esp + 0x88]
push ebx
push ebp
inc ecx
push esi
push edi
mov dword [esp + 0x50], ecx
mov ecx, dword [edx + 4]
mov ebp, dword [edx]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 8]
mov edi, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
mov ebx, dword [edx + 0x18]
mov dword [esp + 0x14], ecx
mov ecx, dword [edx + 0x14]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov cl, byte [eax]
mov dword [esp + 0x30], edx
shl ecx, 0x18
inc eax
xor edx, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], esi
mov dl, byte [eax]
shl edx, 0x10
or ecx, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or ecx, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or ecx, edx
mov edx, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x54], ecx
mov ecx, esi
inc eax
rol edx, 0x1a
rol ecx, 0x15
xor edx, ecx
mov ecx, esi
rol ecx, 7
xor edx, ecx
mov ecx, esi
not ecx
and ecx, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
and ebx, esi
mov esi, dword [esp + 0x18]
xor ecx, ebx
mov ebx, dword [0x591691d8]
add edx, esi
mov esi, dword [esp + 0x30]
add ecx, edx
mov edx, dword [esp + 0x1c]
add ecx, ebx
mov ebx, ebp
add ecx, esi
mov esi, edx
and edx, ebp
add edi, ecx
mov dword [esp + 0x3c], edx
mov edx, ebp
xor esi, ebp
mov dword [esp + 0x2c], edi
rol edx, 0x1e
rol ebx, 0x13
xor edx, ebx
mov ebx, ebp
rol ebx, 0xa
xor edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x40], esi
and esi, ebx
mov ebx, dword [esp + 0x3c]
add ecx, edx
xor esi, ebx
add esi, ecx
xor ecx, ecx
mov cl, byte [eax]
shl ecx, 0x18
inc eax
xor edx, edx
mov ebx, edi
mov dl, byte [eax]
shl edx, 0x10
or ecx, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or ecx, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or ecx, edx
mov edx, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x58], ecx
mov ecx, edi
inc eax
rol ebx, 0x1a
rol ecx, 0x15
xor ebx, ecx
mov ecx, edi
rol edx, 7
xor ebx, edx
mov edx, dword [esp + 0x44]
not ecx
and ecx, edx
mov edx, dword [esp + 0x34]
and edx, edi
xor ecx, edx
mov edx, dword [esp + 0x10]
add edx, ebx
mov ebx, dword [esp + 0x20]
add ecx, edx
mov edx, dword [0x591691dc]
add ecx, edx
mov edx, dword [esp + 0x14]
add ecx, ebx
mov ebx, esi
add edx, ecx
mov dword [esp + 0x10], ecx
mov ecx, esi
mov dword [esp + 0x14], edx
rol ebx, 0x1e
rol ecx, 0x13
mov edx, esi
xor ebx, ecx
mov ecx, dword [esp + 0x40]
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x3c]
and ecx, esi
xor ecx, edx
mov edx, dword [esp + 0x10]
add edx, ebx
add ecx, edx
xor edx, edx
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 0x18
inc eax
shl edx, 0x10
or ecx, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or ecx, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or ecx, edx
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x14]
mov ebx, ecx
mov edx, ecx
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, ecx
rol edx, 7
xor ebx, edx
mov edx, dword [esp + 0x34]
not ecx
and ecx, edx
mov edx, edi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
and edx, ecx
mov ecx, dword [esp + 0x18]
xor ecx, edx
mov edx, dword [esp + 0x10]
add edx, ebx
mov ebx, dword [esp + 0x44]
add ecx, edx
mov edx, dword [0x591691e0]
add ecx, edx
mov edx, dword [esp + 0x1c]
add ecx, ebx
add edx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov ebx, edx
mov ecx, edx
rol ebx, 0x1e
rol ecx, 0x13
xor ebx, ecx
mov ecx, edx
rol ecx, 0xa
xor ebx, ecx
mov ecx, edx
xor ecx, ebp
and edx, ebp
and ecx, esi
xor ecx, edx
mov edx, dword [esp + 0x10]
add edx, ebx
xor ebx, ebx
add ecx, edx
xor edx, edx
mov dl, byte [eax]
mov bl, byte [eax + 1]
shl edx, 0x18
inc eax
shl ebx, 0x10
or edx, ebx
inc eax
xor ebx, ebx
mov bh, byte [eax]
or edx, ebx
inc eax
xor ebx, ebx
mov bl, byte [eax]
or edx, ebx
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x1c]
mov ebx, edx
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, dword [esp + 0x1c]
rol edx, 7
xor ebx, edx
mov edx, dword [esp + 0x1c]
not edx
and edx, edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
and edi, edx
mov edx, dword [esp + 0x18]
xor edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
add edx, edi
mov edi, dword [0x591691e4]
mov ebx, dword [esp + 0x34]
add edx, edi
add edx, ebx
mov ebx, ecx
add ebp, edx
mov dword [esp + 0x10], edx
mov edx, ecx
mov dword [esp + 0x24], ebp
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, ecx
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x20]
mov edi, edx
and edx, ecx
xor edi, ecx
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x10]
add edx, ebx
xor ebx, ebx
add edi, edx
xor edx, edx
mov dl, byte [eax]
mov bl, byte [eax + 1]
shl edx, 0x18
inc eax
shl ebx, 0x10
or edx, ebx
inc eax
xor ebx, ebx
mov bh, byte [eax]
or edx, ebx
inc eax
xor ebx, ebx
mov bl, byte [eax]
or edx, ebx
mov ebx, ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x64], edx
mov edx, ebp
inc eax
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, ebp
rol edx, 7
xor ebx, edx
mov edx, dword [esp + 0x14]
not ebp
and ebp, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x1c]
and ebp, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x10]
xor edx, ebp
mov ebp, dword [esp + 0x18]
add ebx, ebp
mov ebp, dword [esp + 0x2c]
add edx, ebx
mov ebx, dword [0x591691e8]
add edx, ebx
mov ebx, edi
add edx, ebp
mov ebp, ecx
mov dword [esp + 0x10], edx
add esi, edx
mov edx, edi
mov dword [esp + 0x28], esi
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, edi
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x20]
xor ebp, edi
and ebp, edx
mov edx, ecx
and edx, edi
xor ebp, edx
mov edx, dword [esp + 0x10]
add edx, ebx
xor ebx, ebx
add ebp, edx
xor edx, edx
mov dl, byte [eax]
mov bl, byte [eax + 1]
shl edx, 0x18
inc eax
shl ebx, 0x10
or edx, ebx
inc eax
xor ebx, ebx
mov bh, byte [eax]
or edx, ebx
inc eax
xor ebx, ebx
mov bl, byte [eax]
or edx, ebx
mov ebx, esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], edx
mov edx, esi
inc eax
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, esi
rol edx, 7
xor ebx, edx
mov edx, dword [esp + 0x1c]
not esi
and esi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x28]
and esi, edx
mov edx, dword [esp + 0x18]
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
mov ebx, dword [esp + 0x14]
add edx, esi
mov esi, dword [0x591691ec]
add edx, esi
mov esi, dword [esp + 0x20]
add edx, ebx
mov ebx, ebp
mov dword [esp + 0x10], edx
add esi, edx
mov edx, ebp
mov dword [esp + 0x20], esi
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, ebp
rol edx, 0xa
xor ebx, edx
mov edx, edi
xor edx, ebp
mov esi, edi
and edx, ecx
and esi, ebp
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
add edx, esi
mov dword [esp + 0x14], edx
xor edx, edx
mov dl, byte [eax]
mov esi, edx
shl esi, 0x18
inc eax
xor edx, edx
mov dl, byte [eax]
shl edx, 0x10
or esi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or esi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or esi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], esi
mov dword [esp + 0x6c], esi
mov ebx, edx
mov esi, edx
rol ebx, 0x1a
rol esi, 0x15
xor ebx, esi
mov esi, edx
rol esi, 7
xor ebx, esi
mov esi, dword [esp + 0x24]
not edx
and edx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
and esi, edx
mov edx, dword [esp + 0x18]
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
mov ebx, dword [0x591691f0]
add edx, esi
mov esi, dword [esp + 0x1c]
add edx, ebx
inc eax
add edx, esi
mov dword [esp + 0x10], edx
add ecx, edx
mov edx, dword [esp + 0x14]
mov ebx, edx
mov esi, edx
rol ebx, 0x1e
rol esi, 0x13
xor ebx, esi
mov esi, edx
rol esi, 0xa
xor ebx, esi
mov esi, ebp
xor esi, edx
mov dword [esp + 0x30], ebx
mov ebx, ebp
and esi, edi
and ebx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], esi
xor esi, ebx
mov ebx, dword [esp + 0x30]
add edx, ebx
add esi, edx
xor edx, edx
mov dl, byte [eax]
mov dword [esp + 0x1c], esi
mov esi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl esi, 0x18
inc eax
shl edx, 0x10
or esi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or esi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or esi, edx
inc eax
mov dword [esp + 0x10], esi
mov ebx, ecx
mov edx, ecx
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, ecx
rol edx, 7
xor ebx, edx
mov edx, ecx
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x28]
not edx
and edx, esi
mov esi, dword [esp + 0x20]
and esi, ecx
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
mov ebx, dword [0x591691f4]
add edx, esi
mov esi, dword [esp + 0x24]
add edx, ebx
add edx, esi
mov dword [esp + 0x10], edx
add edi, edx
mov edx, dword [esp + 0x1c]
mov ebx, edx
mov esi, edx
rol ebx, 0x1e
rol esi, 0x13
xor ebx, esi
mov esi, edx
rol esi, 0xa
xor ebx, esi
mov esi, dword [esp + 0x14]
xor esi, edx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x14]
and esi, ebp
and ebx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], esi
xor esi, ebx
mov ebx, dword [esp + 0x30]
add edx, ebx
mov ebx, edi
add esi, edx
xor edx, edx
mov dl, byte [eax]
mov dword [esp + 0x24], esi
mov esi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl esi, 0x18
inc eax
shl edx, 0x10
or esi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or esi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or esi, edx
mov edx, edi
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, edi
rol edx, 7
xor ebx, edx
mov edx, edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x20]
inc eax
not edx
and edx, esi
mov esi, ecx
and esi, edi
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
mov ebx, dword [esp + 0x28]
add edx, esi
mov esi, dword [0x591691f8]
add edx, esi
mov esi, dword [esp + 0x24]
add edx, ebx
mov ebx, dword [esp + 0x1c]
add ebp, edx
mov dword [esp + 0x10], edx
mov edx, ebx
and ebx, esi
xor edx, esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edx
mov ebx, esi
mov edx, esi
mov dword [esp + 0x2c], ebp
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, dword [esp + 0x40]
rol esi, 0xa
xor ebx, esi
mov esi, dword [esp + 0x14]
and edx, esi
mov esi, dword [esp + 0x3c]
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
mov ebx, ebp
add edx, esi
mov dword [esp + 0x28], edx
xor edx, edx
mov dl, byte [eax]
mov esi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl esi, 0x18
inc eax
shl edx, 0x10
or esi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or esi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or esi, edx
mov edx, ebp
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, ebp
rol edx, 7
xor ebx, edx
mov edx, ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x78], esi
not edx
mov esi, edi
and edx, ecx
and esi, ebp
inc eax
xor edx, esi
mov esi, dword [esp + 0x10]
add esi, ebx
mov ebx, dword [0x591691fc]
add edx, esi
mov esi, dword [esp + 0x20]
add edx, ebx
mov ebx, dword [esp + 0x14]
add edx, esi
mov dword [esp + 0x10], edx
add ebx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov ebx, edx
mov esi, edx
rol ebx, 0x1e
rol esi, 0x13
xor ebx, esi
mov esi, edx
rol esi, 0xa
xor ebx, esi
mov esi, dword [esp + 0x40]
and esi, edx
mov edx, dword [esp + 0x3c]
xor esi, edx
mov edx, dword [esp + 0x10]
add edx, ebx
xor ebx, ebx
add esi, edx
xor edx, edx
mov dl, byte [eax]
mov bl, byte [eax + 1]
shl edx, 0x18
inc eax
shl ebx, 0x10
or edx, ebx
inc eax
xor ebx, ebx
mov bh, byte [eax]
or edx, ebx
inc eax
xor ebx, ebx
mov bl, byte [eax]
or edx, ebx
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x14]
mov ebx, edx
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, dword [esp + 0x14]
rol edx, 7
xor ebx, edx
mov edx, dword [esp + 0x14]
not edx
and edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
and ebp, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x10]
xor edx, ebp
mov ebp, dword [esp + 0x18]
add ebx, ebp
mov ebp, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [0x59169200]
add edx, ebx
mov ebx, dword [esp + 0x1c]
add edx, ecx
mov ecx, esi
add ebx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ebx
mov ebx, esi
rol ebx, 0x1e
rol ecx, 0x13
mov edx, esi
xor ebx, ecx
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x24]
mov ecx, esi
xor ecx, edx
and ecx, ebp
mov ebp, esi
and ebp, edx
mov edx, dword [esp + 0x10]
xor ecx, ebp
add edx, ebx
add ecx, edx
xor edx, edx
mov dl, byte [eax]
mov ebp, edx
xor edx, edx
mov dl, byte [eax + 1]
shl ebp, 0x18
inc eax
shl edx, 0x10
or ebp, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or ebp, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or ebp, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x80], ebp
mov ebp, edx
mov ebx, edx
rol ebp, 0x1a
rol ebx, 0x15
xor ebp, ebx
mov ebx, edx
rol ebx, 7
xor ebp, ebx
mov ebx, dword [esp + 0x2c]
not edx
and edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
and ebx, edx
mov edx, dword [esp + 0x18]
xor edx, ebx
mov ebx, dword [esp + 0x10]
add ebx, ebp
mov ebp, dword [0x59169204]
add edx, ebx
mov ebx, ecx
add edx, ebp
mov ebp, dword [esp + 0x24]
add edx, edi
mov edi, ecx
add ebp, edx
inc eax
rol edi, 0x1e
rol ebx, 0x13
xor edi, ebx
mov ebx, ecx
mov dword [esp + 0x24], ebp
mov ebp, esi
rol ebx, 0xa
xor edi, ebx
mov ebx, dword [esp + 0x28]
xor ebp, ecx
add edx, edi
and ebp, ebx
mov ebx, esi
and ebx, ecx
xor ebp, ebx
add ebp, edx
xor edx, edx
mov dl, byte [eax]
mov dword [esp + 0x20], ebp
mov edi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl edi, 0x18
inc eax
shl edx, 0x10
or edi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or edi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or edi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], edi
mov dword [esp + 0x84], edi
mov ebx, edx
mov edi, edx
inc eax
rol ebx, 0x1a
rol edi, 0x15
xor ebx, edi
mov edi, edx
rol edi, 7
xor ebx, edi
mov edi, dword [esp + 0x14]
not edx
and edx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
and edi, edx
mov edx, dword [esp + 0x18]
xor edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [esp + 0x2c]
add edx, edi
mov edi, dword [0x59169208]
add edx, edi
mov edi, dword [esp + 0x28]
add edx, ebx
mov ebx, ebp
add edi, edx
mov dword [esp + 0x10], edx
mov edx, ebp
mov dword [esp + 0x28], edi
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, ebp
rol edx, 0xa
xor ebx, edx
mov edx, ecx
xor edx, ebp
mov edi, ecx
and edx, esi
and edi, ebp
xor edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
add edx, edi
mov dword [esp + 0x2c], edx
xor edx, edx
mov dl, byte [eax]
mov edi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl edi, 0x18
inc eax
shl edx, 0x10
or edi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or edi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or edi, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], edi
mov dword [esp + 0x88], edi
mov ebx, edx
mov edi, edx
rol ebx, 0x1a
rol edi, 0x15
xor ebx, edi
mov edi, edx
rol edi, 7
inc eax
xor ebx, edi
mov edi, dword [esp + 0x1c]
not edx
and edx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
and edi, edx
mov edx, dword [esp + 0x18]
xor edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [0x5916920c]
add edx, edi
mov edi, dword [esp + 0x14]
add edx, ebx
add edx, edi
add esi, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
mov ebx, edx
mov edi, edx
rol ebx, 0x1e
rol edi, 0x13
xor ebx, edi
mov edi, edx
rol edi, 0xa
xor ebx, edi
mov edi, ebp
xor edi, edx
and edi, ecx
mov dword [esp + 0x18], edi
mov edi, ebp
and edi, edx
mov edx, dword [esp + 0x18]
xor edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
mov ebx, esi
add edx, edi
mov dword [esp + 0x14], edx
xor edx, edx
mov dl, byte [eax]
mov edi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl edi, 0x18
inc eax
shl edx, 0x10
or edi, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or edi, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or edi, edx
mov edx, esi
rol ebx, 0x1a
rol edx, 0x15
xor ebx, edx
mov edx, esi
rol edx, 7
xor ebx, edx
mov edx, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x24]
inc eax
not edx
and edx, edi
mov edi, dword [esp + 0x28]
and edi, esi
xor edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [0x59169210]
add edx, edi
mov edi, dword [esp + 0x1c]
add edx, ebx
add edx, edi
mov dword [esp + 0x10], edx
add ecx, edx
mov edx, dword [esp + 0x14]
mov ebx, edx
mov edi, edx
rol ebx, 0x1e
rol edi, 0x13
xor ebx, edi
mov edi, edx
rol edi, 0xa
xor ebx, edi
mov edi, dword [esp + 0x2c]
xor edi, edx
and edi, ebp
mov ebp, dword [esp + 0x2c]
and ebp, edx
mov edx, dword [esp + 0x10]
add edx, ebx
xor edi, ebp
add edi, edx
xor edx, edx
mov dl, byte [eax]
mov ebx, dword [esp + 0x28]
mov ebp, edx
xor edx, edx
mov dl, byte [eax + 1]
shl ebp, 0x18
inc eax
shl edx, 0x10
or ebp, edx
inc eax
xor edx, edx
mov dh, byte [eax]
or ebp, edx
inc eax
xor edx, edx
mov dl, byte [eax]
or ebp, edx
mov edx, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x90], ebp
mov ebp, ecx
inc eax
rol ebp, 0x1a
rol edx, 0x15
xor ebp, edx
mov edx, ecx
rol edx, 7
xor ebp, edx
mov edx, ecx
not edx
and edx, ebx
mov ebx, esi
and ebx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x10]
add ebx, ebp
mov ebp, dword [esp + 0x24]
add edx, ebx
mov ebx, dword [0x59169214]
add edx, ebx
mov ebx, dword [esp + 0x20]
add edx, ebp
mov ebp, edi
mov dword [esp + 0x10], edx
add ebx, edx
mov edx, edi
mov dword [esp + 0x20], ebx
rol ebp, 0x1e
rol edx, 0x13
xor ebp, edx
mov ebx, dword [esp + 0x2c]
mov edx, edi
rol edx, 0xa
xor ebp, edx
mov edx, dword [esp + 0x14]
xor edx, edi
and edx, ebx
mov ebx, dword [esp + 0x14]
and ebx, edi
xor edx, ebx
mov ebx, dword [esp + 0x10]
add ebx, ebp
add edx, ebx
mov dword [esp + 0x34], 0x5916921c
mov dword [esp + 0x24], edx
mov edx, 0x11
mov dword [esp + 0x38], edx
mov ebx, edx
and ebx, 0xf
lea ebx, [esp + ebx*4 + 0x54]
mov dword [esp + 0x18], ebx
mov ebx, dword [ebx]
mov dword [esp + 0x10], ebx
lea ebx, [edx - 3]
and ebx, 0xf
dec edx
and edx, 0xf
lea ebx, [esp + ebx*4 + 0x54]
mov dword [esp + 0x48], ebx
lea edx, [esp + edx*4 + 0x54]
mov ebx, dword [ebx]
mov dword [esp + 0x44], edx
mov ebp, ebx
mov edx, ebx
rol ebp, 0xf
rol edx, 0xd
xor ebp, edx
mov edx, dword [esp + 0x10]
shr ebx, 0xa
xor ebp, ebx
mov ebx, edx
rol ebx, 0x19
rol edx, 0xe
xor ebx, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebx, edx
mov edx, dword [esp + 0x38]
add edx, 0xfffffff8
add ebp, ebx
and edx, 0xf
mov ebx, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x44]
add ebp, ebx
mov ebx, dword [edx]
add ebx, ebp
mov dword [edx], ebx
mov edx, dword [esp + 0x20]
mov ebx, edx
mov ebp, edx
rol ebx, 0x1a
rol ebp, 0x15
xor ebx, ebp
mov ebp, edx
rol ebp, 7
xor ebx, ebp
mov ebp, ecx
mov dword [esp + 0x30], ebx
mov ebx, edx
not ebx
and ebx, esi
and ebp, edx
mov edx, dword [esp + 0x30]
xor ebx, ebp
add edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx - 4]
mov ebx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [ebx]
mov ebx, dword [esp + 0x2c]
add edx, ebp
mov ebp, dword [esp + 0x28]
add edx, ebp
add ebx, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
mov ebx, edi
mov ebp, edx
xor ebx, edx
mov dword [esp + 0x40], ebx
mov ebx, edi
and ebx, edx
mov dword [esp + 0x3c], ebx
mov ebx, edx
rol ebx, 0x1e
rol ebp, 0x13
xor ebx, ebp
mov ebp, dword [esp + 0x40]
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x14]
and ebp, edx
mov edx, dword [esp + 0x3c]
xor ebp, edx
mov edx, dword [esp + 0x10]
add edx, ebx
mov ebx, dword [esp + 0x38]
add ebp, edx
lea edx, [ebx + 1]
add ebx, 0xfffffffe
and edx, 0xf
and ebx, 0xf
mov dword [esp + 0x28], ebp
lea edx, [esp + edx*4 + 0x54]
mov dword [esp + 0x30], edx
mov edx, dword [edx]
mov dword [esp + 0x10], edx
lea edx, [esp + ebx*4 + 0x54]
mov dword [esp + 0x4c], edx
mov edx, dword [edx]
mov ebx, edx
mov ebp, edx
rol ebx, 0xf
rol ebp, 0xd
xor ebx, ebp
shr edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x38]
add edx, 0xfffffff9
add ebx, ebp
and edx, 0xf
mov ebp, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x18]
add ebx, ebp
mov ebp, dword [edx]
add ebp, ebx
mov dword [edx], ebp
mov edx, ebp
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
mov ebp, edx
mov ebx, edx
rol ebp, 0x1a
rol ebx, 0x15
xor ebp, ebx
mov ebx, edx
rol ebx, 7
xor ebp, ebx
mov ebx, edx
not ebx
and ebx, ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x20]
and ebx, edx
mov edx, dword [esp + 0x1c]
xor edx, ebx
mov ebx, dword [esp + 0x10]
add ebx, ebp
add edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx]
mov ebx, dword [esp + 0x14]
add edx, ebp
add edx, esi
add ebx, edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28]
mov ebp, ebx
rol ebp, 0x1e
mov esi, ebx
rol esi, 0x13
xor ebp, esi
mov esi, ebx
rol esi, 0xa
xor ebp, esi
mov esi, dword [esp + 0x40]
and esi, ebx
mov ebx, dword [esp + 0x3c]
add edx, ebp
xor esi, ebx
add esi, edx
mov edx, dword [esp + 0x38]
add edx, 2
and edx, 0xf
lea edx, [esp + edx*4 + 0x54]
mov dword [esp + 0x40], edx
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
mov edx, dword [edx]
mov ebx, edx
mov ebp, edx
rol ebx, 0xf
rol ebp, 0xd
xor ebx, ebp
shr edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x38]
add edx, 0xfffffffa
add ebx, ebp
and edx, 0xf
mov ebp, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x30]
add ebx, ebp
mov ebp, dword [edx]
add ebp, ebx
mov dword [edx], ebp
mov edx, dword [esp + 0x14]
mov ebx, edx
mov ebp, edx
rol ebx, 0x1a
rol ebp, 0x15
xor ebx, ebp
mov ebp, edx
rol ebp, 7
xor ebx, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x3c], ebx
mov ebx, edx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x2c]
and ebp, edx
mov edx, dword [esp + 0x3c]
xor ebx, ebp
add edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 4]
mov ebx, dword [esp + 0x30]
add edx, ebp
add edx, dword [ebx]
add edx, ecx
mov ecx, esi
mov dword [esp + 0x10], edx
add edi, edx
mov edx, esi
mov dword [esp + 0x1c], edi
rol edx, 0x1e
rol ecx, 0x13
xor edx, ecx
mov ecx, esi
mov ebp, dword [esp + 0x28]
mov ebx, esi
rol ecx, 0xa
xor edx, ecx
mov ecx, dword [esp + 0x24]
xor ebx, ecx
and ebx, ebp
mov ebp, esi
and ebp, ecx
mov ecx, dword [esp + 0x10]
add ecx, edx
mov edx, dword [esp + 0x38]
add edx, 3
xor ebx, ebp
and edx, 0xf
add ecx, ebx
lea edx, [esp + edx*4 + 0x54]
mov dword [esp + 0x3c], edx
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov ebx, edx
mov ebp, edx
rol ebx, 0xf
rol ebp, 0xd
xor ebx, ebp
shr edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x38]
add edx, 0xfffffffb
add ebx, ebp
and edx, 0xf
mov ebp, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x40]
add ebx, ebp
mov ebp, dword [edx]
add ebp, ebx
mov ebx, edi
mov dword [edx], ebp
mov edx, ebp
mov dword [esp + 0x18], edx
mov edx, edi
rol edx, 0x1a
rol ebx, 0x15
xor edx, ebx
mov ebp, dword [esp + 0x2c]
mov ebx, edi
rol ebx, 7
xor edx, ebx
mov ebx, edi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x14]
and ebp, edi
xor ebx, ebp
add edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 8]
mov ebx, dword [esp + 0x18]
add edx, ebp
mov ebp, dword [esp + 0x20]
add edx, ebx
mov ebx, dword [esp + 0x24]
add edx, ebp
add ebx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], ebx
mov ebx, ecx
mov edx, ecx
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, ecx
mov ebp, esi
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x28]
xor ebp, ecx
and ebp, edx
mov edx, esi
and edx, ecx
xor ebp, edx
mov edx, dword [esp + 0x10]
add edx, ebx
add ebp, edx
mov edx, dword [esp + 0x38]
add edx, 4
mov dword [esp + 0x20], ebp
and edx, 0xf
lea edx, [esp + edx*4 + 0x54]
mov dword [esp + 0x18], edx
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
mov ebx, edx
mov ebp, edx
rol ebx, 0xf
rol ebp, 0xd
xor ebx, ebp
shr edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x38]
add edx, 0xfffffffc
add ebx, ebp
and edx, 0xf
mov ebp, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x3c]
add ebx, ebp
mov ebp, dword [edx]
add ebp, ebx
mov ebx, dword [esp + 0x24]
mov dword [edx], ebp
mov edx, ebp
mov dword [esp + 0x30], edx
mov edx, ebx
mov ebp, ebx
rol edx, 0x1a
rol ebp, 0x15
xor edx, ebp
mov ebp, ebx
rol ebp, 7
xor edx, ebp
mov ebp, dword [esp + 0x14]
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x24]
and edi, ebp
mov ebp, dword [esp + 0x30]
xor ebx, edi
mov edi, dword [esp + 0x34]
add edx, ebx
mov ebx, dword [edi + 0xc]
mov edi, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [esp + 0x2c]
add edx, ebp
add edx, ebx
add edi, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x20]
mov ebx, edi
mov edx, edi
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, edi
rol edx, 0xa
mov ebp, ecx
xor ebx, edx
xor ebp, edi
mov edx, ecx
and edx, edi
and ebp, esi
xor ebp, edx
mov edx, dword [esp + 0x10]
add edx, ebx
add ebp, edx
mov edx, dword [esp + 0x38]
add edx, 5
mov dword [esp + 0x2c], ebp
and edx, 0xf
lea edx, [esp + edx*4 + 0x54]
mov dword [esp + 0x30], edx
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
mov ebx, edx
mov ebp, edx
rol ebx, 0xf
rol ebp, 0xd
xor ebx, ebp
shr edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x48]
add ebx, ebp
mov ebp, dword [edx]
mov edx, dword [esp + 0x18]
add ebx, ebp
mov ebp, dword [edx]
add ebp, ebx
mov ebx, dword [esp + 0x28]
mov dword [edx], ebp
mov edx, ebp
mov dword [esp + 0x48], edx
mov edx, ebx
mov ebp, ebx
rol edx, 0x1a
rol ebp, 0x15
xor edx, ebp
mov ebp, ebx
rol ebp, 7
xor edx, ebp
mov ebp, ebx
and ebx, dword [esp + 0x24]
not ebp
and ebp, dword [esp + 0x1c]
xor ebp, ebx
mov ebx, dword [esp + 0x34]
add edx, ebp
mov ebp, dword [ebx + 0x10]
mov ebx, dword [esp + 0x48]
add edx, ebp
mov ebp, dword [esp + 0x14]
add edx, ebx
mov ebx, dword [esp + 0x2c]
add edx, ebp
mov ebp, ebx
mov dword [esp + 0x10], edx
add esi, edx
mov edx, ebx
rol ebp, 0x1e
rol edx, 0x13
xor ebp, edx
mov edx, ebx
rol edx, 0xa
xor ebp, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x48], ebp
mov ebp, edi
xor ebp, ebx
and edi, ebx
and ebp, ecx
xor ebp, edi
mov edi, dword [esp + 0x48]
add edx, edi
add ebp, edx
mov edx, dword [esp + 0x38]
add edx, 6
mov dword [esp + 0x14], ebp
and edx, 0xf
lea edx, [esp + edx*4 + 0x54]
mov dword [esp + 0x48], edx
mov edx, dword [edx]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
mov edi, edx
mov ebp, edx
rol edi, 0xf
rol ebp, 0xd
xor edi, ebp
shr edx, 0xa
xor edi, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x4c]
add edi, ebp
mov ebp, dword [edx]
mov edx, dword [esp + 0x30]
add edi, ebp
mov ebp, dword [edx]
add ebp, edi
mov edi, esi
mov dword [edx], ebp
mov edx, ebp
mov dword [esp + 0x4c], edx
mov edx, esi
rol edx, 0x1a
rol edi, 0x15
xor edx, edi
mov ebp, dword [esp + 0x24]
mov edi, esi
rol edi, 7
xor edx, edi
mov edi, esi
not edi
and edi, ebp
mov ebp, dword [esp + 0x28]
and ebp, esi
xor edi, ebp
add edx, edi
mov edi, dword [esp + 0x34]
mov ebp, dword [edi + 0x14]
mov edi, dword [esp + 0x4c]
add edx, ebp
mov ebp, dword [esp + 0x1c]
add edx, edi
add edx, ebp
mov dword [esp + 0x10], edx
add ecx, edx
mov edx, dword [esp + 0x14]
mov edi, edx
mov ebp, edx
rol edi, 0x1e
rol ebp, 0x13
xor edi, ebp
mov ebp, edx
rol ebp, 0xa
xor edi, ebp
mov ebp, ebx
xor ebp, edx
and ebx, edx
and ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
add edx, edi
xor ebp, ebx
add ebp, edx
mov edx, dword [esp + 0x38]
add edx, 7
mov edi, ebp
and edx, 0xf
mov edx, dword [esp + edx*4 + 0x54]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov ebx, edx
mov ebp, edx
rol ebx, 0xf
rol ebp, 0xd
xor ebx, ebp
shr edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x10]
mov ebp, edx
rol ebp, 0x19
rol edx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
shr edx, 3
xor ebp, edx
mov edx, dword [esp + 0x44]
add ebx, ebp
mov ebp, dword [edx]
mov edx, dword [esp + 0x48]
add ebx, ebp
mov ebp, dword [edx]
add ebp, ebx
mov ebx, ecx
mov dword [edx], ebp
mov edx, ebp
mov dword [esp + 0x4c], edx
mov edx, ecx
rol edx, 0x1a
rol ebx, 0x15
xor edx, ebx
mov ebp, dword [esp + 0x28]
mov ebx, ecx
rol ebx, 7
xor edx, ebx
mov ebx, ecx
not ebx
and ebx, ebp
mov ebp, esi
and ebp, ecx
xor ebx, ebp
add edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 0x18]
mov ebx, dword [esp + 0x4c]
add edx, ebp
mov ebp, dword [esp + 0x24]
add edx, ebx
mov ebx, dword [esp + 0x20]
add edx, ebp
add ebx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], ebx
mov ebx, edi
mov edx, edi
rol ebx, 0x1e
rol edx, 0x13
xor ebx, edx
mov edx, edi
rol edx, 0xa
xor ebx, edx
mov edx, dword [esp + 0x14]
mov ebp, edx
and edx, edi
xor ebp, edi
and ebp, dword [esp + 0x2c]
xor ebp, edx
mov edx, dword [esp + 0x10]
add edx, ebx
add ebp, edx
mov edx, dword [esp + 0x38]
mov ebx, ebp
mov ebp, dword [esp + 0x34]
add edx, 8
add ebp, 0x20
mov dword [esp + 0x34], ebp
mov dword [esp + 0x24], ebx
lea ebp, [edx - 1]
mov dword [esp + 0x38], edx
cmp ebp, 0x40
jl 0x590fee69
mov edx, dword [esp + 0x98]
mov ebp, dword [edx]
add ebp, ebx
mov ebx, dword [edx + 4]
add ebx, edi
mov edi, dword [edx + 8]
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x14]
add edi, ebx
mov ebx, dword [esp + 0x2c]
mov dword [edx + 8], edi
mov edi, dword [edx + 0xc]
add edi, ebx
mov ebx, dword [esp + 0x20]
mov dword [edx + 0xc], edi
mov edi, dword [edx + 0x10]
add edi, ebx
mov dword [edx], ebp
mov dword [edx + 0x10], edi
mov edi, dword [edx + 0x14]
add edi, ecx
mov ecx, dword [edx + 0x18]
add ecx, esi
mov esi, dword [esp + 0x28]
mov dword [edx + 0x18], ecx
mov ecx, dword [edx + 0x1c]
add ecx, esi
mov dword [edx + 0x14], edi
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x50]
dec ecx
mov dword [esp + 0x50], ecx
jne 0x590fe3a3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret