Function at 0x5e9950
Capabilities:
Encrypt data using camellia
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x40
cmp dword [esp + 0x48], 0x18
push ebx
sbb eax, eax
mov ebx, ecx
push ebp
add eax, 4
push esi
push edi
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 0x18]
lea edi, [eax*8 + 2]
mov edx, dword [ebx + 0x1c]
lea ebp, [edi + edi]
mov dword [esp + 0x40], edi
cmp ecx, ebp
je 0x5e999e
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
push edx
call fcn.005c8a80
add esp, 4
lea ecx, [ebx + 0x10]
push 0
push ebp
call fcn.0054d5f0
mov edi, dword [esp + 0x40]
mov edx, eax
mov dword [ebx + 0x18], ebp
lea ecx, [ebx + 4]
mov dword [ebx + 0x1c], edx
xor ebp, ebp
mov dword [ebx + 0x14], 0x3fffffff
xor esi, esi
mov eax, dword [ecx]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov eax, dword [eax + 0x20]
call eax
test al, al
jne 0x5e99d7
or ebp, 0xffffffff
lea esi, [edi - 1]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x54]
xor edi, edi
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0xc]
bswap ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x18]
lea ebx, [ebx + esi*8]
xor esi, esi
bswap eax
or esi, eax
mov dword [esp + 0x30], eax
mov eax, ebp
mov dword [esp + 0x1c], esi
and eax, 0xfffffff0
bswap edx
add eax, ebx
mov dword [esp + 0x28], edx
or edi, edx
mov edx, dword [esp + 0x2c]
bswap ecx
mov dword [esp + 0x24], edx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [ebx], esi
mov dword [ebx + 4], edx
xor edx, edx
cmp dword [esp + 0x58], 0x10
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], ecx
jne 0x5ea0a9
mov eax, dword [esp + 0x1c]
mov esi, ecx
mov ecx, dword [esp + 0x24]
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
mov ecx, dword [esp + 0x20]
mov eax, ebp
and eax, 0xffffffc0
mov dword [eax + ebx + 0x20], esi
mov dword [eax + ebx + 0x24], edx
xor edx, edx
mov esi, dword [esp + 0x24]
mov eax, edi
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
mov ecx, dword [esp + 0x20]
mov eax, ebp
and eax, 0xffffffb0
mov dword [eax + ebx + 0x28], esi
mov dword [eax + ebx + 0x2c], edx
xor edx, edx
mov esi, dword [esp + 0x1c]
mov eax, edi
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xffffff60
mov dword [eax + ebx + 0x50], edx
xor edx, edx
mov dword [eax + ebx + 0x54], esi
mov esi, edi
mov eax, dword [esp + 0x1c]
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x20]
and eax, 0xffffff50
mov dword [eax + ebx + 0x58], edx
xor edx, edx
mov dword [eax + ebx + 0x5c], esi
mov eax, edi
mov esi, dword [esp + 0x1c]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xffffff40
mov dword [eax + ebx + 0x60], edx
xor edx, edx
mov dword [eax + ebx + 0x64], esi
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
or esi, eax
mov eax, ebp
and eax, 0xfffffef0
mov dword [eax + ebx + 0x88], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ebx + 0x8c], edx
mov eax, edi
shr esi, 0x13
xor edx, edx
mov ecx, dword [esp + 0x20]
shld ecx, eax, 0xd
xor dword [esp + 0x28], 0x3bcc908b
shl eax, 0xd
or edx, ecx
or esi, eax
mov ecx, dword [esp + 0x1c]
mov eax, ebp
and eax, 0xffffff00
mov dword [eax + ebx + 0x80], esi
mov dword [eax + ebx + 0x84], edx
mov esi, dword [esp + 0x24]
mov edx, esi
mov eax, dword [esp + 0x20]
shr eax, 2
shld edx, ecx, 0x1e
shr esi, 2
shl ecx, 0x1e
or ecx, eax
mov eax, ebp
and eax, 0xfffffed0
mov dword [eax + ebx + 0x98], ecx
mov dword [eax + ebx + 0x9c], edx
xor edx, edx
mov ecx, dword [esp + 0x20]
mov eax, edi
shld ecx, eax, 0x1e
shl eax, 0x1e
or edx, ecx
or esi, eax
xor ecx, ecx
mov eax, ebp
and eax, 0xfffffee0
mov dword [eax + ebx + 0x90], esi
mov dword [eax + ebx + 0x94], edx
mov eax, edi
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
shrd eax, esi, 0x11
shl edx, 0xf
or ecx, eax
shr esi, 0x11
or edx, esi
shl edi, 0xf
mov eax, ebp
and eax, 0xfffffe90
mov dword [eax + ebx + 0xb8], ecx
xor ecx, ecx
mov dword [eax + ebx + 0xbc], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
shrd edx, eax, 0x11
shr eax, 0x11
or ecx, edx
mov edx, dword [esp + 0x34]
or edi, eax
mov eax, ebp
xor edx, 0xa09e667f
and eax, 0xfffffea0
mov dword [eax + ebx + 0xb0], ecx
mov dword [eax + ebx + 0xb4], edi
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ebx, dword [ecx*4 + 0x6e0ff8]
xor ebx, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor ebx, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
mov edx, dword [esp + 0x28]
xor ebx, dword [eax*4 + 0x6e17f8]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, dl
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, ebx
ror ebx, 8
mov edi, ecx
xor ebx, ecx
xor edi, dword [esp + 0x2c]
xor ebx, dword [esp + 0x30]
mov edx, edi
xor edx, 0xb67ae858
mov dword [esp + 0x54], ebx
mov eax, edx
xor ebx, 0x4caa73b2
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x6e0ff8]
xor esi, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor esi, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ebp, dword [ecx*4 + 0x6e13f8]
xor ebp, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ebp, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ebp, dword [eax*4 + 0x6e0bf8]
xor ebp, esi
ror esi, 8
mov edx, ebp
xor esi, ebp
xor edx, 0xc6ef372f
mov dword [esp + 0x40], esi
mov eax, edx
mov ebx, esi
shr eax, 0x10
xor ebx, 0xe94f82be
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x6e0ff8]
xor esi, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor esi, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, esi
mov eax, ecx
xor eax, edi
xor eax, dword [esp + 0x2c]
mov edx, eax
mov dword [esp + 0x58], eax
xor edx, 0x54ff53a5
ror esi, 8
xor esi, ecx
mov eax, edx
xor esi, dword [esp + 0x54]
shr eax, 0x10
movzx ecx, al
mov eax, edx
xor esi, dword [esp + 0x30]
shr eax, 8
mov ebx, esi
movzx eax, al
xor ebx, 0xf1d36f1c
mov edi, dword [ecx*4 + 0x6e0ff8]
xor edi, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor edi, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor edi, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ebx, ebx
or ebx, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x14]
xor ecx, dword [eax*4 + 0x6e0bf8]
mov eax, esi
xor ecx, edi
and eax, 0xffffffd0
ror edi, 8
and esi, 0xffffffe0
xor edi, ecx
xor ecx, ebp
xor edi, dword [esp + 0x40]
mov dword [esp + 0x54], edi
xor edi, edi
mov ebp, dword [esp + 0x54]
or edi, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x38], edi
lea edx, [ecx + ebx*8]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
mov dword [eax + edx + 0x18], ebp
mov ebp, dword [esp + 0x14]
mov dword [eax + edx + 0x1c], edi
mov eax, ebx
mov dword [esi + edx + 0x10], ebx
mov ebx, dword [esp + 0x18]
mov dword [esi + edx + 0x14], ecx
mov esi, edi
shld ecx, eax, 0xf
shr esi, 0x11
xor edx, edx
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [ebx + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xffffffa0
mov dword [eax + ecx + 0x30], esi
mov esi, dword [esp + 0x58]
mov dword [eax + ecx + 0x34], edx
shr esi, 0x11
mov eax, dword [esp + 0x54]
mov ecx, edi
shld ecx, eax, 0xf
xor edx, edx
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [ebx + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xffffff90
mov dword [eax + ecx + 0x38], esi
mov ecx, ebx
mov ebx, dword [esp + 0x58]
shr ebx, 2
lea esi, [ecx + ebp*8]
mov ebp, dword [esp + 0x24]
mov dword [eax + esi + 0x3c], edx
mov eax, edi
mov ecx, dword [esp + 0x58]
xor edx, edx
shld ecx, ebp, 0x1e
shr eax, 2
shl ebp, 0x1e
or ebp, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x10]
and eax, 0xffffff80
mov dword [esp + 0x40], ebp
mov dword [eax + esi + 0x40], ebp
mov dword [eax + esi + 0x44], ecx
mov ecx, edi
mov eax, dword [esp + 0x54]
xor edi, edi
shld ecx, eax, 0x1e
mov ebp, dword [esp + 0x14]
shl eax, 0x1e
or edi, ecx
mov ecx, dword [esp + 0x58]
or ebx, eax
mov eax, dword [esp + 0x10]
and eax, 0xffffff70
mov dword [esp + 0x34], ebx
mov dword [eax + esi + 0x48], ebx
mov ebx, dword [esp + 0x18]
mov dword [eax + esi + 0x4c], edi
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xffffff30
lea ecx, [ebx + ebp*8]
mov dword [eax + ecx + 0x68], edx
xor edx, edx
mov dword [eax + ecx + 0x6c], esi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xffffff20
lea ecx, [ebx + ebp*8]
mov dword [eax + ecx + 0x70], edx
xor edx, edx
mov dword [eax + ecx + 0x74], esi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
shrd eax, ecx, 4
shl esi, 0x1c
shr ecx, 4
or edx, eax
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xffffff10
lea ecx, [ebx + ebp*8]
mov dword [eax + ecx + 0x78], edx
mov ecx, ebp
mov ebp, dword [esp + 0x40]
lea edx, [ecx*8]
mov ecx, dword [esp + 0x3c]
add edx, ebx
mov ebx, dword [esp + 0x34]
mov dword [eax + edx + 0x7c], esi
mov esi, dword [esp + 0x10]
mov eax, esi
and eax, 0xfffffeb0
and esi, 0xfffffec0
mov dword [eax + edx + 0xa8], ebp
mov ebp, dword [esp + 0x14]
mov dword [eax + edx + 0xac], ecx
xor ecx, ecx
mov dword [esi + edx + 0xa0], ebx
mov ebx, dword [esp + 0x38]
mov dword [esi + edx + 0xa4], edi
mov esi, dword [esp + 0x54]
mov eax, esi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
shrd eax, ebx, 0x11
shl edx, 0xf
or ecx, eax
shr ebx, 0x11
mov eax, dword [esp + 0x10]
or edx, ebx
lea ebx, [edi + ebp*8]
shl esi, 0xf
mov ebp, dword [esp + 0x24]
and eax, 0xfffffe80
mov edi, dword [esp + 0x10]
mov dword [eax + ebx + 0xc0], ecx
mov ecx, dword [esp + 0x58]
shrd ebp, ecx, 0x11
mov dword [eax + ebx + 0xc4], edx
xor eax, eax
shr ecx, 0x11
or eax, ebp
or esi, ecx
and edi, 0xfffffe70
mov dword [edi + ebx + 0xc8], eax
mov dword [edi + ebx + 0xcc], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
shl esi, 0xd
mov eax, edi
shrd eax, ecx, 0x13
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
and eax, 0xffffff40
mov ecx, dword [esp + 0x24]
mov dword [eax + ebx + 0x60], edx
xor edx, edx
mov dword [eax + ebx + 0x64], esi
mov esi, edi
mov eax, dword [esp + 0x1c]
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x20]
and eax, 0xffffff30
mov dword [eax + ebx + 0x68], edx
xor edx, edx
mov dword [eax + ebx + 0x6c], esi
mov eax, edi
mov esi, dword [esp + 0x1c]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xffffff00
mov dword [eax + ebx + 0x80], edx
xor edx, edx
mov dword [eax + ebx + 0x84], esi
mov esi, edi
mov eax, dword [esp + 0x1c]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xfffffef0
mov dword [eax + ebx + 0x88], edx
xor edx, edx
mov dword [eax + ebx + 0x8c], esi
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
mov ecx, dword [esp + 0x20]
or esi, eax
mov eax, ebp
and eax, 0xfffffe90
mov dword [eax + ebx + 0xb8], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ebx + 0xbc], edx
xor edx, edx
mov eax, edi
shr esi, 0x13
shld ecx, eax, 0xd
shl eax, 0xd
or edx, ecx
or esi, eax
xor ecx, ecx
mov eax, ebp
and eax, 0xfffffea0
mov dword [eax + ebx + 0xb0], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ebx + 0xb4], edx
mov eax, edi
mov edx, dword [esp + 0x1c]
shl edx, 0xf
shrd eax, esi, 0x11
or ecx, eax
shr esi, 0x11
mov eax, ebp
shl edi, 0xf
and eax, 0xfffffe10
or edx, esi
mov dword [eax + ebx + 0xf8], ecx
xor ecx, ecx
mov dword [eax + ebx + 0xfc], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
shrd edx, eax, 0x11
shr eax, 0x11
or ecx, edx
or edi, eax
mov eax, ebp
and eax, 0xfffffe20
cmp dword [esp + 0x58], 0x18
mov dword [eax + ebx + 0xf0], ecx
mov dword [eax + ebx + 0xf4], edi
mov eax, dword [esp + 0x54]
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
bswap ebx
bswap ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
jne 0x5ea232
mov ecx, ebx
mov edx, ebp
not ecx
not edx
jmp 0x5ea23c
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
bswap ecx
bswap edx
xor eax, eax
mov dword [esp + 0x1c], ecx
or eax, ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], eax
mov edi, ebx
xor ebx, ebx
mov dword [esp + 0x58], edi
or ebx, edx
mov ebp, ecx
mov eax, ebx
mov dword [esp + 0x24], ebx
shld ecx, eax, 0xf
mov ebx, dword [esp + 0x14]
mov esi, edi
mov edi, dword [esp + 0x18]
xor edx, edx
shl eax, 0xf
or edx, ecx
shr esi, 0x11
or esi, eax
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x10]
lea ecx, [edi + ebx*8]
and eax, 0xffffffc0
mov dword [eax + ecx + 0x20], esi
mov esi, ebp
mov dword [eax + ecx + 0x24], edx
xor edx, edx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [ebx*8]
mov eax, dword [esp + 0x10]
add ecx, edi
mov ebx, dword [esp + 0x24]
and eax, 0xffffffb0
mov edi, dword [esp + 0x20]
shld ebp, ebx, 0x1e
shr edi, 2
mov dword [eax + ecx + 0x28], esi
xor esi, esi
mov dword [eax + ecx + 0x2c], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
shr eax, 2
shl ebx, 0x1e
or ebx, eax
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x10]
and eax, 0xffffff80
mov dword [esp + 0x44], ebx
mov dword [eax + ecx + 0x40], ebx
mov dword [eax + ecx + 0x44], ebp
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x58]
shld ecx, eax, 0x1e
shl eax, 0x1e
or esi, ecx
or edi, eax
lea ecx, [edx*8]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
and eax, 0xffffff70
shl edx, 0x1c
mov dword [esp + 0x4c], edi
mov dword [eax + ecx + 0x48], edi
mov dword [eax + ecx + 0x4c], esi
xor ecx, ecx
mov eax, dword [esp + 0x54]
shrd eax, ebx, 4
shr ebx, 4
or ecx, eax
mov eax, dword [esp + 0x10]
or edx, ebx
mov ebp, dword [esp + 0x14]
and eax, 0xfffffee0
mov edi, dword [esp + 0x18]
lea ebx, [edi + ebp*8]
mov dword [eax + ebx + 0x90], ecx
xor ecx, ecx
mov dword [eax + ebx + 0x94], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
shrd eax, edx, 4
mov ebx, dword [esp + 0x54]
or ecx, eax
shr edx, 4
mov eax, dword [esp + 0x10]
and eax, 0xfffffed0
shl ebx, 0x1c
or ebx, edx
lea edx, [edi + ebp*8]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [eax + edx + 0x98], ecx
mov dword [eax + edx + 0x9c], ebx
mov ecx, dword [esp + 0x10]
mov eax, ecx
mov ebx, dword [esp + 0x44]
and eax, 0xfffffe50
and ecx, 0xfffffe60
mov dword [eax + edx + 0xd8], ebx
mov dword [eax + edx + 0xdc], ebp
mov dword [ecx + edx + 0xd0], edi
mov dword [ecx + edx + 0xd4], esi
mov esi, dword [esp + 0x3c]
xor esi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov edx, esi
xor edx, 0xa09e667f
xor edi, dword [esp + 0x28]
mov eax, edx
mov ebx, edi
shr eax, 0x10
xor ebx, 0x3bcc908b
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e0ff8]
xor ecx, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
mov edx, ecx
xor edx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, edx
ror edx, 8
xor edx, ecx
mov ebp, ecx
xor edx, dword [esp + 0x38]
xor edx, dword [esp + 0x30]
xor ebp, dword [esp + 0x1c]
xor ebp, dword [esp + 0x2c]
mov dword [esp + 0x54], edx
mov edx, ebp
mov ebx, dword [esp + 0x54]
xor edx, 0xb67ae858
mov eax, edx
xor ebx, 0x4caa73b2
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e0ff8]
xor ecx, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
mov edx, ecx
mov dword [esp + 0x24], ecx
xor edx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, edx
ror edx, 8
xor edx, ecx
mov eax, ecx
xor eax, esi
xor edx, edi
xor eax, dword [esp + 0x34]
xor edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov edx, eax
xor edx, 0xc6ef372f
mov edi, dword [esp + 0x24]
mov eax, edx
mov ebx, edi
shr eax, 0x10
xor ebx, 0xe94f82be
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x6e0ff8]
xor esi, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor esi, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, esi
ror esi, 8
xor esi, ecx
mov eax, ecx
xor esi, dword [esp + 0x54]
xor eax, ebp
xor eax, dword [esp + 0x2c]
xor esi, dword [esp + 0x30]
mov edx, eax
mov ebx, esi
mov dword [esp + 0x58], eax
xor edx, 0x54ff53a5
mov dword [esp + 0x28], esi
xor ebx, 0xf1d36f1c
mov eax, edx
xor ebp, ebp
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x6e0ff8]
xor esi, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor edx, edx
xor esi, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
mov ebx, dword [esp + 0x58]
xor ecx, dword [eax*4 + 0x6e0bf8]
mov eax, dword [esp + 0x20]
xor ecx, esi
xor eax, ecx
ror esi, 8
xor esi, ecx
mov dword [esp + 0x54], eax
xor edi, esi
mov dword [esp + 0x20], eax
or ebp, edi
mov dword [esp + 0x24], edi
mov esi, eax
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x14]
xor edi, edi
or edi, dword [esp + 0x28]
mov ecx, ebx
shr esi, 0x11
mov eax, edi
shld ecx, eax, 0xf
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
or edx, ecx
shl eax, 0xf
or esi, eax
mov eax, dword [esp + 0x10]
and eax, 0xffffffa0
lea ecx, [edi + ebp*8]
mov dword [eax + ecx + 0x30], esi
mov esi, ebx
mov dword [eax + ecx + 0x34], edx
xor edx, edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [edi + ebp*8]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x2c]
and eax, 0xffffff90
mov dword [eax + ecx + 0x38], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx + 0x3c], edx
xor edx, edx
mov ecx, dword [esp + 0x54]
shrd ebp, ecx, 0x13
shl esi, 0xd
shr ecx, 0x13
or edx, ebp
or esi, ecx
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
and eax, 0xffffff20
lea ecx, [edi + ebp*8]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx + 0x70], edx
xor edx, edx
mov dword [eax + ecx + 0x74], esi
mov ecx, ebx
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
shrd edi, ecx, 0x13
and eax, 0xffffff10
shl esi, 0xd
or edx, edi
shr ecx, 0x13
mov edi, dword [esp + 0x18]
or esi, ecx
lea ecx, [edi + ebp*8]
mov dword [eax + ecx + 0x78], edx
xor edx, edx
mov dword [eax + ecx + 0x7c], esi
mov ecx, ebx
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
or esi, eax
lea ecx, [edi + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xfffffe70
mov dword [eax + ecx + 0xc8], esi
mov esi, ebx
mov dword [eax + ecx + 0xcc], edx
xor edx, edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
or esi, eax
lea ecx, [edi + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xfffffe80
mov dword [eax + ecx + 0xc0], esi
mov ecx, ebp
mov ebp, dword [esp + 0x2c]
lea esi, [ecx*8]
mov ecx, ebx
add esi, edi
shr ebx, 2
mov edi, dword [esp + 0x30]
shld ecx, edi, 0x1e
mov dword [eax + esi + 0xc4], edx
mov edx, dword [esp + 0x54]
mov eax, edx
shr eax, 2
shl edi, 0x1e
or edi, eax
mov eax, dword [esp + 0x10]
and eax, 0xfffffe30
shld edx, ebp, 0x1e
shl ebp, 0x1e
mov dword [eax + esi + 0xe8], edi
or ebx, ebp
mov edi, dword [esp + 0x24]
mov dword [eax + esi + 0xec], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
or ecx, edx
and eax, 0xfffffe40
mov dword [eax + esi + 0xe0], ebx
mov dword [eax + esi + 0xe4], ecx
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x3c]
xor edi, dword [esp + 0x40]
mov edx, eax
mov dword [esp + 0x20], eax
xor edx, 0x10e527fa
mov ebx, edi
mov eax, edx
xor ebx, 0xde682d1d
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x6e0ff8]
xor esi, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor esi, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, esi
ror esi, 8
mov eax, ecx
xor esi, ecx
xor eax, dword [esp + 0x1c]
xor dword [esp + 0x58], eax
xor esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
xor eax, esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x28], eax
mov ebx, eax
mov edx, esi
xor ebx, 0xb3e6c1fd
xor edx, 0xb05688c2
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ebp, dword [ecx*4 + 0x6e0ff8]
xor ebp, dword [eax*4 + 0x6e13f8]
mov eax, edx
shr eax, 0x18
xor ebp, dword [eax*4 + 0x6e0bf8]
movzx eax, dl
xor ebp, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x6e13f8]
xor ecx, dword [eax*4 + 0x6e17f8]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x6e0ff8]
movzx eax, bl
xor ebx, ebx
xor ecx, dword [eax*4 + 0x6e0bf8]
xor ecx, ebp
ror ebp, 8
xor ebp, ecx
xor ecx, dword [esp + 0x20]
xor ebp, edi
xor edi, edi
or edi, ecx
mov dword [esp + 0x30], ebp
or ebx, dword [esp + 0x28]
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x10]
mov eax, edx
mov ebx, dword [esp + 0x18]
and eax, 0xffffffd0
mov dword [esp + 0x58], esi
and edx, 0xffffffe0
mov esi, dword [esp + 0x14]
lea ecx, [ebx + esi*8]
mov ebx, dword [esp + 0x54]
mov dword [eax + ecx + 0x18], ebp
mov dword [eax + ecx + 0x1c], edi
mov eax, edi
mov dword [edx + ecx + 0x10], ebx
mov esi, dword [esp + 0x58]
mov dword [edx + ecx + 0x14], esi
mov ecx, ebx
mov ebx, dword [esp + 0x14]
mov edx, esi
shld edx, ecx, 0x1e
shr eax, 2
shl ecx, 0x1e
or ecx, eax
lea esi, [ebx*8]
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0xffffff60
mov dword [eax + esi + 0x50], ecx
mov esi, ebx
mov ebx, dword [esp + 0x18]
lea ecx, [ebx + esi*8]
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx + 0x54], edx
xor edx, edx
mov esi, dword [esp + 0x58]
mov eax, ebp
shr esi, 2
mov ecx, edi
shld ecx, eax, 0x1e
or edx, ecx
shl eax, 0x1e
or esi, eax
lea ecx, [ebx*8]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0xffffff50
mov dword [eax + ecx + 0x58], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx + 0x5c], edx
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, edi
shrd ebp, ecx, 4
shl esi, 0x1c
and eax, 0xfffffec0
shr ecx, 4
or edx, ebp
or esi, ecx
mov ebp, dword [esp + 0x30]
lea ecx, [ebx*8]
mov ebx, dword [esp + 0x54]
add ecx, dword [esp + 0x18]
mov dword [eax + ecx + 0xa0], edx
xor edx, edx
mov dword [eax + ecx + 0xa4], esi
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
shrd ebx, ecx, 4
shl esi, 0x1c
and eax, 0xfffffeb0
or edx, ebx
shr ecx, 4
mov ebx, dword [esp + 0x14]
or esi, ecx
lea ecx, [ebx*8]
add ecx, dword [esp + 0x18]
mov dword [eax + ecx + 0xa8], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx + 0xac], esi
xor ecx, ecx
shl edx, 0xf
mov eax, ebp
shl ebp, 0xf
shrd eax, edi, 0x11
or ecx, eax
shr edi, 0x11
mov eax, dword [esp + 0x10]
or edx, edi
mov edi, dword [esp + 0x18]
and eax, 0xfffffe00
lea esi, [edi + ebx*8]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x10]
mov dword [eax + esi + 0x100], ecx
mov ecx, dword [esp + 0x58]
shrd ebx, ecx, 0x11
mov dword [eax + esi + 0x104], edx
xor eax, eax
shr ecx, 0x11
or eax, ebx
or ebp, ecx
and edi, 0xfffffdf0
mov dword [edi + esi + 0x108], eax
mov dword [edi + esi + 0x10c], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc