Function at 0x100377a0
Capabilities:
Encrypt data using camellia

Disassembly:
push ecx
mov edx, dword [esp + 0xc]
push ebx
push ebp
push esi
mov ecx, dword [edx]
mov esi, dword [esp + 0x1c]
mov eax, ecx
push edi
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
mov dword [esi], eax
mov edi, dword [edx + 4]
mov ecx, edi
ror ecx, 8
and ecx, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ecx, edi
mov dword [esi + 4], ecx
mov edi, dword [edx + 8]
mov ebp, edi
mov dword [esp + 0x1c], ecx
ror ebp, 8
and ebp, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ebp, edi
mov dword [esi + 8], ebp
mov ebx, dword [edx + 0xc]
mov edi, ebx
ror edi, 8
and edi, 0xff00ff00
rol ebx, 8
and ebx, 0xff00ff
or edi, ebx
mov ebx, dword [esp + 0x18]
cmp ebx, 0x80
mov dword [esi + 0xc], edi
je 0x100378c9
mov ecx, dword [edx + 0x10]
mov eax, ecx
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
mov dword [esi + 0x20], eax
mov edi, dword [edx + 0x14]
mov ecx, edi
ror ecx, 8
and ecx, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ecx, edi
cmp ebx, 0xc0
mov dword [esi + 0x24], ecx
jne 0x1003787a
mov ebp, eax
mov edi, ecx
not ebp
mov dword [esi + 0x28], ebp
not edi
jmp 0x100378af
mov edi, dword [edx + 0x18]
mov ebp, edi
ror ebp, 8
and ebp, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ebp, edi
mov dword [esi + 0x28], ebp
mov edx, dword [edx + 0x1c]
mov edi, edx
ror edi, 8
and edi, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or edi, edx
mov dword [esi + 0x2c], edi
mov ebx, dword [esi]
mov edx, dword [esi + 4]
xor eax, ebx
mov ebx, dword [esi + 8]
xor ecx, edx
mov edx, dword [esi + 0xc]
xor ebp, ebx
mov dword [esp + 0x1c], ecx
xor edi, edx
mov edx, dword [0x1009a588]
mov ebx, dword [0x1009a58c]
xor edx, eax
xor ebx, ecx
xor ecx, ecx
mov dword [esp + 0x10], edx
mov cl, byte [esp + 0x12]
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov ecx, dword [ecx*4 + 0x10099d88]
mov bl, dh
xor ecx, dword [ebx*4 + 0x1009a188]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099588]
mov ebx, dword [edx*4 + 0x10099988]
mov edx, dword [esp + 0x20]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov cl, byte [esp + 0x22]
mov bl, dh
mov ecx, dword [ecx*4 + 0x1009a188]
xor ecx, dword [ebx*4 + 0x10099988]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099d88]
mov ebx, dword [edx*4 + 0x10099588]
mov edx, dword [esp + 0x10]
xor ecx, ebx
xor ebx, ebx
xor ecx, edx
xor ebp, ecx
ror edx, 8
xor edx, ecx
mov ecx, dword [0x1009a594]
xor edi, edx
mov edx, dword [0x1009a590]
xor ecx, edi
xor edx, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov bl, dh
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x10099d88]
xor ecx, dword [ebx*4 + 0x1009a188]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099588]
mov ebx, dword [edx*4 + 0x10099988]
mov edx, dword [esp + 0x20]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov cl, byte [esp + 0x22]
mov bl, dh
mov ecx, dword [ecx*4 + 0x1009a188]
xor ecx, dword [ebx*4 + 0x10099988]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099d88]
mov ebx, dword [edx*4 + 0x10099588]
mov edx, dword [esp + 0x10]
xor ecx, ebx
mov ebx, dword [esi]
xor ecx, edx
xor eax, ecx
ror edx, 8
xor edx, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, edx
mov edx, dword [esi + 4]
xor eax, ebx
xor ecx, edx
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
xor edi, edx
mov edx, dword [0x1009a598]
xor ebp, ebx
mov ebx, dword [0x1009a59c]
xor edx, eax
xor ebx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov dword [esp + 0x20], ebx
mov cl, byte [esp + 0x12]
xor ebx, ebx
mov bl, dh
mov ecx, dword [ecx*4 + 0x10099d88]
xor ecx, dword [ebx*4 + 0x1009a188]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099588]
mov ebx, dword [edx*4 + 0x10099988]
mov edx, dword [esp + 0x20]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov cl, byte [esp + 0x22]
mov bl, dh
mov ecx, dword [ecx*4 + 0x1009a188]
xor ecx, dword [ebx*4 + 0x10099988]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099d88]
mov ebx, dword [edx*4 + 0x10099588]
mov edx, dword [esp + 0x10]
xor ecx, ebx
xor ebx, ebx
xor ecx, edx
xor ebp, ecx
ror edx, 8
xor edx, ecx
mov ecx, dword [0x1009a5a4]
xor edi, edx
mov edx, dword [0x1009a5a0]
xor ecx, edi
xor edx, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov bl, dh
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x10099d88]
xor ecx, dword [ebx*4 + 0x1009a188]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099588]
mov ebx, dword [edx*4 + 0x10099988]
mov edx, dword [esp + 0x20]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov cl, byte [esp + 0x22]
mov bl, dh
mov ecx, dword [ecx*4 + 0x1009a188]
xor ecx, dword [ebx*4 + 0x10099988]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099d88]
mov ebx, dword [edx*4 + 0x10099588]
mov edx, dword [esp + 0x10]
xor ecx, ebx
xor ecx, edx
xor eax, ecx
ror edx, 8
xor edx, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, edx
mov edx, dword [esp + 0x18]
cmp edx, 0x80
jne 0x10037e30
mov edx, ecx
mov dword [esi + 0x10], eax
mov ebx, eax
mov dword [esi + 0x14], ecx
shr edx, 0x11
shl eax, 0xf
or edx, eax
mov eax, ebp
shr eax, 0x11
shl ecx, 0xf
mov dword [esi + 0x18], ebp
or eax, ecx
mov dword [esi + 0x1c], edi
mov ecx, edi
shr ebx, 0x11
shl edi, 0xf
shr ecx, 0x11
shl ebp, 0xf
or edi, ebx
or ecx, ebp
mov ebx, eax
mov dword [esi + 0x30], edx
mov ebp, edx
mov dword [esi + 0x34], eax
shr ebx, 0x11
shl edx, 0xf
or ebx, edx
mov edx, ecx
shr edx, 0x11
shl eax, 0xf
or edx, eax
mov eax, edi
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edi
shr eax, 0x11
shl ecx, 0xf
shr ebp, 0x11
or eax, ecx
mov ecx, ebx
shl edi, 0xf
or edi, ebp
mov dword [esi + 0x40], ebx
shr ecx, 0x11
mov ebp, edi
mov dword [esp + 0x18], ecx
mov edi, eax
mov dword [esi + 0x44], edx
mov ecx, edx
mov dword [esi + 0x48], eax
shr edi, 0x11
shl edx, 0xf
or edi, edx
mov edx, ebp
shr edx, 0x11
shl eax, 0xf
mov dword [esi + 0x4c], ebp
or edx, eax
mov eax, dword [esp + 0x18]
shr ecx, 0x11
shl ebx, 0xf
shl ebp, 0xf
or ecx, ebx
or ebp, eax
mov ebx, edi
mov dword [esi + 0x60], ecx
mov eax, ecx
mov dword [esi + 0x64], edi
shr ebx, 0x11
shl ecx, 0xf
or ebx, ecx
mov ecx, edx
shr ecx, 0x11
shl edi, 0xf
or ecx, edi
mov edi, ebp
shr edi, 0x11
shl edx, 0xf
shr eax, 0x11
shl ebp, 0xf
or edi, edx
or ebp, eax
mov edx, ebp
mov dword [esi + 0x70], ebx
mov eax, edi
mov dword [esi + 0x74], ecx
mov ebp, ecx
mov dword [esi + 0x78], edi
shr eax, 0x1e
shl ecx, 2
or eax, ecx
mov ecx, edx
shr ecx, 0x1e
shl edi, 2
or ecx, edi
mov edi, ebx
mov dword [esi + 0x7c], edx
mov dword [esi + 0xa0], eax
shl edx, 2
shr edi, 0x1e
or edx, edi
lea edi, [ebx*4]
shr ebp, 0x1e
or edi, ebp
mov ebx, ecx
mov ebp, eax
mov dword [esi + 0xa4], ecx
shr ebx, 0xf
shl eax, 0x11
or ebx, eax
mov eax, edx
shr eax, 0xf
shl ecx, 0x11
or eax, ecx
mov ecx, edi
mov dword [esi + 0xa8], edx
mov dword [esi + 0xac], edi
shl edx, 0x11
shr ecx, 0xf
shr ebp, 0xf
shl edi, 0x11
or edx, ecx
mov dword [esi + 0xc0], ebx
or edi, ebp
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], edx
mov dword [esi + 0xcc], edi
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov eax, edx
mov ebp, ecx
shr eax, 0x11
shl ecx, 0xf
or eax, ecx
mov ecx, ebx
shr ecx, 0x11
shl edx, 0xf
or ecx, edx
mov edx, edi
shr ebp, 0x11
shl edi, 0xf
shr edx, 0x11
shl ebx, 0xf
or edi, ebp
or edx, ebx
mov ebp, ecx
mov dword [esi + 0x20], eax
mov ebx, eax
mov dword [esi + 0x24], ecx
shl eax, 0x1e
shr ebp, 2
or eax, ebp
mov ebp, edx
shl ecx, 0x1e
shr ebp, 2
mov dword [esi + 0x28], edx
or ecx, ebp
shr ebx, 2
mov dword [esi + 0x2c], edi
mov ebp, edi
shl edx, 0x1e
shl edi, 0x1e
shr ebp, 2
or edi, ebx
or edx, ebp
mov ebp, edi
mov edi, eax
shr edi, 0x11
mov dword [esp + 0x18], edi
mov edi, ecx
mov dword [esi + 0x50], eax
mov ebx, edx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x5c], ebp
shr edi, 0x11
shl eax, 0xf
shr ebx, 0x11
shl ecx, 0xf
or edi, eax
or ebx, ecx
mov ecx, dword [esp + 0x18]
mov eax, ebp
shl ebp, 0xf
or ebp, ecx
mov ecx, edi
shr ecx, 0xf
mov dword [esi + 0x58], edx
mov dword [esp + 0x18], ecx
shr eax, 0x11
shl edx, 0xf
mov ecx, ebx
or eax, edx
shr ecx, 0xf
shl edi, 0x11
mov edx, eax
or ecx, edi
shr edx, 0xf
shl ebx, 0x11
mov edi, ebp
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], ebp
or edx, ebx
mov ebx, dword [esp + 0x18]
mov dword [esi + 0x80], ecx
shr edi, 0xf
shl eax, 0x11
shl ebp, 0x11
or edi, eax
or ebp, ebx
mov eax, edx
mov ebx, ecx
shr eax, 0xf
shl ecx, 0x11
or eax, ecx
mov ecx, edi
mov dword [esi + 0x84], edx
mov dword [esi + 0x88], edi
shr ecx, 0xf
shl edx, 0x11
or ecx, edx
mov edx, ebp
mov dword [esi + 0x8c], ebp
mov dword [esi + 0x90], eax
shr edx, 0xf
shl edi, 0x11
shr ebx, 0xf
shl ebp, 0x11
or edx, edi
or ebp, ebx
mov edi, ecx
mov ebx, eax
shr edi, 0xf
shl eax, 0x11
or edi, eax
mov eax, edx
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], edx
shr eax, 0xf
shl ecx, 0x11
shr ebx, 0xf
mov dword [esi + 0x9c], ebp
or eax, ecx
mov ecx, ebp
mov dword [esi + 0xb0], edi
shr ecx, 0xf
shl edx, 0x11
shl ebp, 0x11
or ecx, edx
or ebp, ebx
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], ebp
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
pop ecx
ret
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ebp
mov dword [esi + 0x3c], edi
mov edx, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
xor ecx, edx
mov edx, dword [esi + 0x2c]
xor eax, ebx
mov ebx, dword [esi + 0x28]
xor edi, edx
mov edx, dword [0x1009a5a8]
xor ebp, ebx
mov ebx, dword [0x1009a5ac]
xor edx, eax
xor ebx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
xor ecx, ecx
mov dword [esp + 0x18], ebx
mov cl, byte [esp + 0x22]
xor ebx, ebx
mov bl, dh
mov ecx, dword [ecx*4 + 0x10099d88]
xor ecx, dword [ebx*4 + 0x1009a188]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099588]
mov ebx, dword [edx*4 + 0x10099988]
mov edx, dword [esp + 0x18]
xor ecx, ebx
xor ebx, ebx
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov cl, byte [esp + 0x1a]
mov bl, dh
mov ecx, dword [ecx*4 + 0x1009a188]
xor ecx, dword [ebx*4 + 0x10099988]
mov ebx, edx
shr ebx, 0x18
and edx, 0xff
xor ecx, dword [ebx*4 + 0x10099d88]
mov ebx, dword [edx*4 + 0x10099588]
mov edx, dword [esp + 0x20]
xor ecx, ebx
xor ebx, ebx
xor ecx, edx
xor ebp, ecx
ror edx, 8
xor edx, ecx
mov ecx, dword [0x1009a5b0]
xor edi, edx
mov edx, dword [0x1009a5b4]
xor edx, edi
xor ecx, ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
xor edx, edx
mov bl, ch
mov dl, byte [esp + 0x22]
mov edx, dword [edx*4 + 0x10099d88]
xor edx, dword [ebx*4 + 0x1009a188]
mov ebx, ecx
shr ebx, 0x18
and ecx, 0xff
xor edx, dword [ebx*4 + 0x10099588]
mov ebx, dword [ecx*4 + 0x10099988]
xor ecx, ecx
mov cl, byte [esp + 0x1a]
xor edx, ebx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx*4 + 0x1009a188]
xor ebx, ebx
mov bl, dh
xor ecx, dword [ebx*4 + 0x10099988]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x10099d88]
and edx, 0xff
mov ebx, dword [edx*4 + 0x10099588]
mov edx, dword [esp + 0x20]
xor ecx, ebx
xor ecx, edx
xor eax, ecx
ror edx, 8
xor edx, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, edx
mov dword [esi + 0x10], eax
mov ebx, ecx
mov edx, eax
shl eax, 0x1e
shr ebx, 2
or eax, ebx
mov ebx, ebp
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ebp
shl ecx, 0x1e
shr ebx, 2
or ecx, ebx
mov ebx, edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x50], eax
shl ebp, 0x1e
shr ebx, 2
shr edx, 2
shl edi, 0x1e
or ebp, ebx
or edi, edx
mov ebx, ecx
mov edx, eax
shl eax, 0x1e
shr ebx, 2
or eax, ebx
mov ebx, ebp
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], ebp
shl ecx, 0x1e
shr ebx, 2
or ecx, ebx
mov ebx, edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0xa0], eax
shl ebp, 0x1e
shr ebx, 2
shr edx, 2
shl edi, 0x1e
or ebp, ebx
or edi, edx
mov edx, ebp
mov dword [esi + 0xa4], ecx
mov ebx, ecx
mov dword [esi + 0xa8], ebp
shr edx, 0xd
shl ecx, 0x13
or edx, ecx
mov ecx, edi
shr ecx, 0xd
shl ebp, 0x13
or ecx, ebp
mov ebp, eax
shr ebx, 0xd
shl eax, 0x13
or eax, ebx
mov dword [esi + 0xac], edi
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x2c]
mov dword [esi + 0x104], ecx
shl edi, 0x13
shr ebp, 0xd
or edi, ebp
mov ebp, dword [esi + 0x28]
mov ecx, eax
mov dword [esi + 0x108], edi
mov edi, dword [esi + 0x24]
mov dword [esi + 0x100], edx
shr ecx, 0x11
mov dword [esp + 0x18], ecx
mov ecx, edi
mov edx, ebp
shr edx, 0x11
shl edi, 0xf
or edx, edi
mov edi, ebx
shr edi, 0x11
shl ebp, 0xf
shr ecx, 0x11
shl eax, 0xf
or edi, ebp
mov ebp, dword [esp + 0x18]
shl ebx, 0xf
or ecx, eax
or ebx, ebp
mov eax, edx
mov dword [esi + 0x20], ecx
mov ebp, ecx
mov dword [esi + 0x24], edx
shr eax, 0x11
shl ecx, 0xf
or eax, ecx
mov ecx, edi
shr ecx, 0x11
shl edx, 0xf
mov dword [esi + 0x28], edi
or ecx, edx
mov dword [esi + 0x2c], ebx
mov edx, ebx
shr ebp, 0x11
shl ebx, 0xf
shr edx, 0x11
shl edi, 0xf
or ebx, ebp
or edx, edi
mov ebp, ecx
mov dword [esi + 0x40], eax
mov edi, eax
mov dword [esi + 0x44], ecx
shl eax, 0x1e
shr ebp, 2
or eax, ebp
mov ebp, edx
shl ecx, 0x1e
shr ebp, 2
or ecx, ebp
mov ebp, ebx
mov dword [esi + 0x48], edx
mov dword [esi + 0x4c], ebx
shl edx, 0x1e
shr ebp, 2
shr edi, 2
shl ebx, 0x1e
or edx, ebp
or ebx, edi
mov edi, edx
mov dword [esi + 0x94], ecx
mov ebp, ecx
mov dword [esi + 0x98], edx
shr edi, 0x1e
shl ecx, 2
or edi, ecx
mov ecx, ebx
shr ecx, 0x1e
shl edx, 2
or ecx, edx
mov dword [esi + 0x9c], ebx
lea edx, [ebx*4]
mov ebx, eax
mov dword [esi + 0x90], eax
mov dword [esi + 0xd4], ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0xd0], edi
shr ebx, 0x1e
shr ebp, 0x1e
shl eax, 2
or edx, ebx
mov ebx, dword [esi + 0x38]
or eax, ebp
mov dword [esi + 0xd8], edx
mov edx, dword [esi + 0x34]
mov dword [esi + 0xdc], eax
mov edi, dword [esi + 0x3c]
mov eax, edx
mov ebp, ecx
shr eax, 0x11
shl ecx, 0xf
or eax, ecx
mov ecx, ebx
shr ecx, 0x11
shl edx, 0xf
or ecx, edx
mov edx, edi
shr ebp, 0x11
shl edi, 0xf
shr edx, 0x11
shl ebx, 0xf
or edi, ebp
or edx, ebx
mov ebp, ecx
mov dword [esi + 0x30], eax
mov ebx, eax
mov dword [esi + 0x34], ecx
shl eax, 0x1e
shr ebp, 2
or eax, ebp
mov ebp, edx
shl ecx, 0x1e
shr ebp, 2
or ecx, ebp
mov ebp, edi
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], edi
shl edx, 0x1e
shr ebp, 2
shr ebx, 2
shl edi, 0x1e
or edx, ebp
mov dword [esi + 0x70], eax
or edi, ebx
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], edi
mov ebx, edx
mov dword [esi + 0xc0], ecx
mov ebp, ecx
mov dword [esi + 0xc4], edx
shr ebx, 0xf
shl ecx, 0x11
or ebx, ecx
mov ecx, edi
shr ecx, 0xf
shl edx, 0x11
or ecx, edx
mov dword [esi + 0xc8], edi
mov edx, eax
mov dword [esi + 0xcc], eax
shr ebp, 0xf
shl edi, 0x11
shr edx, 0xf
shl eax, 0x11
or edi, edx
mov edx, dword [esi + 8]
or eax, ebp
mov dword [esi + 0xe4], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0xec], eax
mov eax, edx
mov ebp, ecx
mov dword [esi + 0xe8], edi
mov edi, dword [esi + 0xc]
shr eax, 0x13
shl ecx, 0xd
or eax, ecx
mov ecx, edi
mov dword [esi + 0xe0], ebx
mov ebx, dword [esi]
shr ecx, 0x13
shl edx, 0xd
shr ebp, 0x13
or ecx, edx
mov edx, ebx
shl edi, 0xd
shr edx, 0x13
shl ebx, 0xd
or edi, edx
or ebx, ebp
mov edx, ecx
mov dword [esi + 0x60], eax
mov ebp, eax
mov dword [esi + 0x64], ecx
shr edx, 0x11
shl eax, 0xf
or edx, eax
mov eax, edi
shr eax, 0x11
shl ecx, 0xf
or eax, ecx
mov ecx, ebx
mov dword [esi + 0x68], edi
mov dword [esi + 0x6c], ebx
shl edi, 0xf
shr ecx, 0x11
shr ebp, 0x11
shl ebx, 0xf
or edi, ecx
or ebx, ebp
mov ecx, eax
mov dword [esi + 0x80], edx
mov ebp, edx
mov dword [esi + 0x84], eax
shr ecx, 0xf
shl edx, 0x11
or ecx, edx
mov edx, edi
shr edx, 0xf
shl eax, 0x11
or edx, eax
mov eax, ebx
mov dword [esi + 0x88], edi
mov dword [esi + 0x8c], ebx
shl edi, 0x11
shr eax, 0xf
shr ebp, 0xf
or edi, eax
mov dword [esi + 0xb4], edx
shl ebx, 0x11
or ebx, ebp
mov eax, edi
mov ebp, edx
mov dword [esi + 0xb8], edi
shr eax, 0x1e
shl edx, 2
or eax, edx
mov edx, ebx
shl edi, 2
shr edx, 0x1e
or edi, edx
mov edx, ecx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xb0], ecx
shr edx, 0x1e
shl ebx, 2
shr ebp, 0x1e
shl ecx, 2
or edx, ebx
or ecx, ebp
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf8], edx
mov dword [esi + 0xfc], ecx
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
pop ecx
ret