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

Disassembly:
mov eax, 0x20
call fcn.0047be20
push ebx
mov ebx, dword [esp + 0x2c]
movzx ecx, byte [ebx]
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl ecx, 8
xor ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 8
xor ecx, edx
shl ecx, 8
push ebp
push esi
xor ecx, eax
mov eax, dword [esp + 0x38]
mov dword [eax], ecx
movzx edx, byte [ebx + 4]
movzx esi, byte [ebx + 5]
shl edx, 8
xor edx, esi
movzx esi, byte [ebx + 6]
shl edx, 8
xor edx, esi
movzx esi, byte [ebx + 7]
push edi
shl edx, 8
xor edx, esi
mov dword [eax + 4], edx
movzx edi, byte [ebx + 8]
movzx esi, byte [ebx + 9]
shl edi, 8
xor edi, esi
movzx esi, byte [ebx + 0xa]
shl edi, 8
xor edi, esi
movzx esi, byte [ebx + 0xb]
shl edi, 8
xor edi, esi
mov dword [eax + 8], edi
movzx esi, byte [ebx + 0xc]
movzx ebp, byte [ebx + 0xd]
shl esi, 8
xor esi, ebp
movzx ebp, byte [ebx + 0xe]
shl esi, 8
xor esi, ebp
movzx ebp, byte [ebx + 0xf]
shl esi, 8
xor esi, ebp
mov ebp, dword [esp + 0x34]
mov dword [eax + 0xc], esi
cmp ebp, 0x80
je 0x50f094
movzx ecx, byte [ebx + 0x10]
movzx edx, byte [ebx + 0x11]
shl ecx, 8
xor ecx, edx
movzx edx, byte [ebx + 0x12]
shl ecx, 8
xor ecx, edx
movzx edx, byte [ebx + 0x13]
shl ecx, 8
xor ecx, edx
mov dword [eax + 0x20], ecx
movzx edx, byte [ebx + 0x14]
movzx esi, byte [ebx + 0x15]
shl edx, 8
xor edx, esi
movzx esi, byte [ebx + 0x16]
shl edx, 8
xor edx, esi
movzx esi, byte [ebx + 0x17]
shl edx, 8
xor edx, esi
mov dword [eax + 0x24], edx
cmp ebp, 0xc0
jne 0x50f045
mov edi, ecx
not edi
mov esi, edx
mov dword [eax + 0x28], edi
not esi
jmp 0x50f086
movzx edi, byte [ebx + 0x18]
movzx esi, byte [ebx + 0x19]
shl edi, 8
xor edi, esi
movzx esi, byte [ebx + 0x1a]
shl edi, 8
xor edi, esi
movzx esi, byte [ebx + 0x1b]
shl edi, 8
xor edi, esi
mov dword [eax + 0x28], edi
movzx esi, byte [ebx + 0x1c]
movzx ebp, byte [ebx + 0x1d]
shl esi, 8
xor esi, ebp
movzx ebp, byte [ebx + 0x1e]
movzx ebx, byte [ebx + 0x1f]
shl esi, 8
xor esi, ebp
shl esi, 8
xor esi, ebx
xor ecx, dword [eax]
xor edx, dword [eax + 4]
xor edi, dword [eax + 8]
mov dword [eax + 0x2c], esi
xor esi, dword [eax + 0xc]
mov ebp, edx
xor ebp, 0x3bcc908b
mov dword [esp + 0x38], ebp
mov ebx, ecx
xor ebx, 0xa09e667f
mov dword [esp + 0x3c], ebx
mov ebp, ebx
shr ebp, 0x10
shr ebx, 8
and ebp, 0xff
and ebx, 0xff
mov dword [esp + 0x1c], ebx
mov ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x1c]
xor ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x3c]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x3c]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56f268]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
mov ebp, ebx
shr ebp, 0x10
shr ebx, 8
and ebp, 0xff
and ebx, 0xff
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x3c]
xor ebx, dword [ebp*4 + 0x56f268]
mov ebp, dword [esp + 0x38]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x38]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x1c]
xor ebx, ebp
mov dword [esp + 0x38], ebx
xor edi, ebx
mov ebx, ebp
shr ebp, 8
shl ebx, 0x18
add ebx, ebp
xor ebx, dword [esp + 0x38]
xor esi, ebx
mov ebp, esi
xor ebp, 0x4caa73b2
mov dword [esp + 0x38], ebp
mov ebx, edi
xor ebx, 0xb67ae858
mov dword [esp + 0x3c], ebx
mov ebp, ebx
shr ebp, 0x10
shr ebx, 8
and ebp, 0xff
and ebx, 0xff
mov dword [esp + 0x1c], ebx
mov ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x1c]
xor ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x3c]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x3c]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56f268]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x38]
mov ebp, ebx
shr ebp, 0x10
shr ebx, 8
and ebp, 0xff
and ebx, 0xff
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x3c]
xor ebx, dword [ebp*4 + 0x56f268]
mov ebp, dword [esp + 0x38]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x38]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [eax]
xor ebx, dword [esp + 0x10]
xor ebp, ebx
xor ecx, ebp
mov dword [esp + 0x38], ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x10]
mov ebp, ebx
shl ebp, 0x18
shr ebx, 8
add ebp, ebx
xor ebp, dword [esp + 0x3c]
mov ebx, ecx
xor ebp, dword [esp + 0x38]
xor ebx, 0xc6ef372f
xor edx, ebp
mov dword [esp + 0x10], ebx
mov ebp, edx
xor ebp, 0xe94f82be
mov dword [esp + 0x38], ebp
mov ebp, ebx
shr ebp, 0x10
and ebp, 0xff
shr ebx, 8
and ebx, 0xff
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x18]
xor ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x10]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x10]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56f268]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x38]
mov ebp, ebx
shr ebp, 0x10
and ebp, 0xff
shr ebx, 8
and ebx, 0xff
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x18]
xor ebx, dword [ebp*4 + 0x56f268]
mov ebp, dword [esp + 0x38]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x38]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [eax + 8]
xor ebx, dword [esp + 0x14]
xor ebp, ebx
mov dword [esp + 0x38], ebx
mov ebx, dword [eax + 0xc]
xor edi, ebp
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
mov ebp, ebx
shl ebp, 0x18
shr ebx, 8
add ebp, ebx
xor ebp, dword [esp + 0x10]
mov ebx, edi
xor ebp, dword [esp + 0x38]
xor ebx, 0x54ff53a5
xor esi, ebp
mov ebp, esi
xor ebp, 0xf1d36f1c
mov dword [esp + 0x38], ebp
mov ebp, ebx
mov dword [esp + 0x14], ebx
shr ebp, 0x10
shr ebx, 8
and ebx, 0xff
and ebp, 0xff
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x20]
xor ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x14]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x14]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56f268]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x38]
mov ebp, ebx
shr ebx, 8
and ebx, 0xff
shr ebp, 0x10
and ebp, 0xff
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x20]
xor ebx, dword [ebp*4 + 0x56f268]
mov ebp, dword [esp + 0x38]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x38]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x14]
xor ebx, ebp
xor ecx, ebx
mov dword [esp + 0x38], ebx
mov ebx, ebp
shl ebx, 0x18
shr ebp, 8
add ebx, ebp
xor ebx, dword [esp + 0x38]
xor edx, ebx
cmp dword [esp + 0x34], 0x80
jne 0x50f6e5
mov ebx, edx
mov ebp, ecx
mov dword [eax + 0x10], ecx
shl ecx, 0xf
mov dword [eax + 0x14], edx
shr ebx, 0x11
or ebx, ecx
shl edx, 0xf
mov ecx, edi
shr ecx, 0x11
or ecx, edx
mov edx, esi
shr edx, 0x11
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], esi
shl edi, 0xf
or edx, edi
shl esi, 0xf
shr ebp, 0x11
or esi, ebp
mov ebp, ebx
mov edi, ecx
mov dword [eax + 0x30], ebx
shl ebx, 0xf
shr edi, 0x11
or edi, ebx
mov ebx, edx
mov dword [eax + 0x34], ecx
shl ecx, 0xf
mov dword [eax + 0x38], edx
shr ebx, 0x11
or ebx, ecx
mov ecx, esi
shl edx, 0xf
shr ecx, 0x11
or ecx, edx
mov dword [eax + 0x3c], esi
mov edx, edi
shr edx, 0x11
shl esi, 0xf
mov dword [esp + 0x34], edx
shr ebp, 0x11
or esi, ebp
mov ebp, esi
mov dword [eax + 0x40], edi
mov edx, ebx
shl edi, 0xf
shr edx, 0x11
or edx, edi
mov esi, ecx
shr esi, 0x11
mov dword [eax + 0x44], ebx
shl ebx, 0xf
or esi, ebx
mov edi, ebp
mov dword [eax + 0x48], ecx
shr edi, 0x11
shl ecx, 0xf
or edi, ecx
mov ebx, esi
mov ecx, edx
mov dword [eax + 0x60], edx
shl edx, 0xf
mov dword [eax + 0x4c], ebp
shr ebx, 0x11
or ebx, edx
shl ebp, 0xf
or ebp, dword [esp + 0x34]
mov dword [eax + 0x64], esi
mov edx, edi
shl esi, 0xf
shr edx, 0x11
or edx, esi
mov esi, ebp
shl edi, 0xf
shr esi, 0x11
shr ecx, 0x11
or esi, edi
shl ebp, 0xf
or ebp, ecx
mov edi, ebp
mov ebp, edx
mov dword [eax + 0x74], edx
mov ecx, esi
add edx, edx
shr ecx, 0x1e
add edx, edx
or ecx, edx
mov dword [eax + 0x78], esi
add esi, esi
mov edx, edi
add esi, esi
shr edx, 0x1e
or edx, esi
lea esi, [edi*4]
mov dword [eax + 0x7c], edi
mov edi, ebx
shr edi, 0x1e
or esi, edi
shr ebp, 0x1e
lea edi, [ebx*4]
or edi, ebp
mov ebp, ecx
mov dword [eax + 0xa0], ecx
shl ecx, 0x11
mov dword [eax + 0x70], ebx
mov ebx, edx
shr ebx, 0xf
or ebx, ecx
mov ecx, esi
mov dword [eax + 0xa4], edx
shr ecx, 0xf
shl edx, 0x11
or ecx, edx
mov edx, dword [eax]
mov dword [eax + 0xc4], ecx
mov dword [eax + 0xa8], esi
mov ecx, edi
shl esi, 0x11
shr ecx, 0xf
or esi, ecx
mov dword [eax + 0xc8], esi
mov esi, dword [esp + 0x3c]
shr ebp, 0xf
mov dword [eax + 0xac], edi
mov ecx, esi
shl edi, 0x11
or edi, ebp
mov ebp, dword [eax + 8]
mov dword [eax + 0xc0], ebx
mov ebx, edx
shl edx, 0xf
shr ecx, 0x11
or ecx, edx
mov edx, ebp
shl esi, 0xf
shr edx, 0x11
or edx, esi
mov dword [eax + 0xcc], edi
mov edi, dword [esp + 0x10]
shl ebp, 0xf
mov esi, edi
shr ebx, 0x11
shr esi, 0x11
or esi, ebp
shl edi, 0xf
or edi, ebx
mov ebp, edx
mov ebx, ecx
shr ebp, 2
mov dword [eax + 0x20], ecx
shl ecx, 0x1e
or ecx, ebp
mov ebp, esi
mov dword [eax + 0x24], edx
shl edx, 0x1e
shr ebp, 2
mov dword [eax + 0x28], esi
shr ebx, 2
or edx, ebp
mov dword [eax + 0x2c], edi
shl esi, 0x1e
mov ebp, edi
shl edi, 0x1e
or edi, ebx
shr ebp, 2
or esi, ebp
mov ebp, edi
mov edi, ecx
shr edi, 0x11
mov dword [esp + 0x34], edi
mov edi, edx
mov dword [eax + 0x50], ecx
mov dword [eax + 0x54], edx
shl ecx, 0xf
shl edx, 0xf
shr edi, 0x11
or edi, ecx
mov ebx, esi
shr ebx, 0x11
or ebx, edx
mov edx, edi
shr edx, 0xf
mov ecx, ebp
mov dword [eax + 0x5c], ebp
shl ebp, 0xf
or ebp, dword [esp + 0x34]
mov dword [esp + 0x34], edx
mov dword [eax + 0x58], esi
shr ecx, 0x11
shl esi, 0xf
or ecx, esi
shl edi, 0x11
mov edx, ebx
shr edx, 0xf
or edx, edi
mov esi, ecx
mov dword [eax + 0x68], ecx
shl ecx, 0x11
shr esi, 0xf
shl ebx, 0x11
or esi, ebx
mov edi, ebp
shr edi, 0xf
or edi, ecx
mov ebx, edx
mov dword [eax + 0x80], edx
mov ecx, esi
shl edx, 0x11
shr ecx, 0xf
or ecx, edx
mov dword [eax + 0x6c], ebp
mov edx, edi
shl ebp, 0x11
or ebp, dword [esp + 0x34]
mov dword [eax + 0x84], esi
shl esi, 0x11
shr edx, 0xf
or edx, esi
mov dword [eax + 0x88], edi
mov esi, ebp
shl edi, 0x11
shr ebx, 0xf
mov dword [eax + 0x8c], ebp
shr esi, 0xf
or esi, edi
shl ebp, 0x11
or ebp, ebx
mov ebx, ecx
mov dword [eax + 0x90], ecx
mov edi, edx
shl ecx, 0x11
shr edi, 0xf
or edi, ecx
mov dword [eax + 0x94], edx
mov ecx, esi
shl edx, 0x11
shr ecx, 0xf
shr ebx, 0xf
or ecx, edx
mov dword [eax + 0x98], esi
mov dword [eax + 0x9c], ebp
mov edx, ebp
shl esi, 0x11
shr edx, 0xf
or edx, esi
mov dword [eax + 0xb0], edi
shl ebp, 0x11
pop edi
or ebp, ebx
pop esi
mov dword [eax + 0xbc], ebp
pop ebp
mov dword [eax + 0xb4], ecx
mov dword [eax + 0xb8], edx
mov eax, 3
pop ebx
add esp, 0x20
ret
mov ebx, dword [eax + 0x20]
mov dword [eax + 0x30], ecx
xor ecx, ebx
mov ebx, dword [eax + 0x24]
mov dword [eax + 0x34], edx
xor edx, ebx
mov dword [eax + 0x38], edi
mov dword [eax + 0x3c], esi
mov ebp, edx
xor ebp, 0xde682d1d
mov dword [esp + 0x34], ebp
mov ebx, ecx
xor ebx, 0x10e527fa
mov dword [esp + 0x38], ebx
mov ebp, ebx
shr ebp, 0x10
and ebp, 0xff
shr ebx, 8
and ebx, 0xff
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x20]
xor ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x38]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x38]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56f268]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x34]
mov ebp, ebx
shr ebp, 0x10
and ebp, 0xff
shr ebx, 8
and ebx, 0xff
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x20]
xor ebx, dword [ebp*4 + 0x56f268]
mov ebp, dword [esp + 0x34]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x34]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [eax + 0x28]
xor ebx, dword [esp + 0x38]
mov dword [esp + 0x34], ebx
xor ebx, ebp
xor edi, ebx
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x38]
mov ebp, ebx
shl ebp, 0x18
shr ebx, 8
add ebp, ebx
xor ebp, dword [esp + 0x34]
mov ebx, edi
xor ebp, dword [esp + 0x14]
xor ebx, 0xb05688c2
xor esi, ebp
mov dword [esp + 0x38], ebx
mov ebp, esi
xor ebp, 0xb3e6c1fd
mov dword [esp + 0x34], ebp
mov ebp, ebx
shr ebp, 0x10
shr ebx, 8
and ebp, 0xff
and ebx, 0xff
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x20]
xor ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x38]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x38]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56f268]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x34]
mov ebp, ebx
shr ebp, 0x10
and ebp, 0xff
shr ebx, 8
and ebx, 0xff
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp*4 + 0x56fa68]
mov ebp, dword [esp + 0x38]
xor ebx, dword [ebp*4 + 0x56f268]
mov ebp, dword [esp + 0x34]
shr ebp, 0x18
xor ebx, dword [ebp*4 + 0x56f668]
mov ebp, dword [esp + 0x34]
and ebp, 0xff
xor ebx, dword [ebp*4 + 0x56ee68]
mov ebp, dword [esp + 0x20]
xor ebx, ebp
xor ecx, ebx
mov dword [esp + 0x34], ebx
mov ebx, ebp
shr ebp, 8
shl ebx, 0x18
add ebx, ebp
xor ebx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
xor edx, ebx
mov ebp, edx
shr ebp, 2
mov ebx, ecx
shl ecx, 0x1e
or ecx, ebp
mov dword [eax + 0x14], edx
mov ebp, edi
shr ebp, 2
shl edx, 0x1e
or edx, ebp
mov ebp, esi
shr ebp, 2
mov dword [eax + 0x18], edi
shr ebx, 2
mov dword [eax + 0x1c], esi
shl edi, 0x1e
or edi, ebp
shl esi, 0x1e
or esi, ebx
mov ebp, edx
shr ebp, 2
mov ebx, ecx
mov dword [eax + 0x50], ecx
shl ecx, 0x1e
or ecx, ebp
mov dword [eax + 0x54], edx
mov ebp, edi
shr ebp, 2
shl edx, 0x1e
or edx, ebp
mov ebp, esi
mov dword [eax + 0x58], edi
shr ebx, 2
shr ebp, 2
mov dword [eax + 0x5c], esi
shl edi, 0x1e
or edi, ebp
shl esi, 0x1e
or esi, ebx
mov ebp, edx
mov dword [eax + 0xa4], edx
mov ebx, edi
shl edx, 0x13
shr ebx, 0xd
or ebx, edx
mov edx, esi
mov dword [eax + 0xa8], edi
shr ebp, 0xd
shr edx, 0xd
mov dword [eax + 0xa0], ecx
mov dword [eax + 0xac], esi
shl edi, 0x13
or edx, edi
mov edi, dword [eax + 0x24]
mov dword [eax + 0x104], edx
mov edx, ecx
shl ecx, 0x13
or ecx, ebp
shr edx, 0xd
shl esi, 0x13
or esi, edx
mov dword [eax + 0x10c], ecx
mov ecx, dword [eax + 0x20]
mov edx, edi
mov ebp, ecx
shr edx, 0x11
shl ecx, 0xf
or edx, ecx
mov ecx, dword [eax + 0x28]
mov dword [eax + 0x108], esi
shl edi, 0xf
mov esi, ecx
shr esi, 0x11
or esi, edi
mov dword [eax + 0x100], ebx
mov ebx, dword [esp + 0x14]
shr ebp, 0x11
mov edi, ebx
shr edi, 0x11
shl ecx, 0xf
or edi, ecx
shl ebx, 0xf
or ebx, ebp
mov ebp, edx
mov dword [eax + 0x20], edx
mov ecx, esi
shl edx, 0xf
shr ecx, 0x11
or ecx, edx
mov edx, edi
mov dword [eax + 0x24], esi
shl esi, 0xf
shr ebp, 0x11
shr edx, 0x11
or edx, esi
mov esi, ebx
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], ebx
shl edi, 0xf
shl ebx, 0xf
or ebx, ebp
shr esi, 0x11
or esi, edi
mov ebp, edx
shr ebp, 2
mov edi, ecx
mov dword [eax + 0x40], ecx
shl ecx, 0x1e
or ecx, ebp
mov dword [eax + 0x44], edx
mov ebp, esi
shr ebp, 2
shl edx, 0x1e
or edx, ebp
mov ebp, ebx
shr ebp, 2
mov dword [eax + 0x48], esi
shr edi, 2
mov dword [eax + 0x4c], ebx
shl esi, 0x1e
or esi, ebp
shl ebx, 0x1e
or ebx, edi
mov ebp, edx
mov dword [eax + 0x94], edx
mov edi, esi
add edx, edx
shr ebp, 0x1e
shr edi, 0x1e
mov dword [eax + 0x90], ecx
mov dword [eax + 0x98], esi
mov dword [eax + 0x9c], ebx
add edx, edx
or edi, edx
add esi, esi
add esi, esi
mov edx, ebx
shr edx, 0x1e
or edx, esi
mov dword [eax + 0xd4], edx
mov esi, ecx
shr esi, 0x1e
add ecx, ecx
lea edx, [ebx*4]
mov ebx, dword [eax + 0x38]
or edx, esi
mov esi, dword [eax + 0x34]
mov dword [eax + 0xd8], edx
mov edx, dword [eax + 0x30]
add ecx, ecx
or ecx, ebp
mov ebp, edx
shl edx, 0xf
mov dword [eax + 0xdc], ecx
mov ecx, esi
shr ecx, 0x11
or ecx, edx
mov edx, ebx
shr edx, 0x11
shl esi, 0xf
or edx, esi
mov dword [eax + 0xd0], edi
mov edi, dword [eax + 0x3c]
shr ebp, 0x11
mov esi, edi
shl ebx, 0xf
shl edi, 0xf
or edi, ebp
mov ebp, edx
shr esi, 0x11
or esi, ebx
shr ebp, 2
mov dword [eax + 0x34], edx
mov ebx, ecx
mov dword [eax + 0x30], ecx
shl edx, 0x1e
shl ecx, 0x1e
or ecx, ebp
mov ebp, esi
shr ebp, 2
or edx, ebp
mov ebp, edi
mov dword [eax + 0x38], esi
mov dword [eax + 0x3c], edi
shr ebx, 2
shr ebp, 2
shl esi, 0x1e
or esi, ebp
shl edi, 0x1e
or edi, ebx
mov ebp, edx
mov dword [eax + 0x74], edx
mov dword [eax + 0xc0], edx
shl edx, 0x11
mov ebx, esi
shr ebx, 0xf
or ebx, edx
mov edx, edi
shr edx, 0xf
mov dword [eax + 0x78], esi
mov dword [eax + 0xc4], esi
shl esi, 0x11
or edx, esi
mov dword [eax + 0xe4], edx
mov dword [eax + 0x7c], edi
mov dword [eax + 0xc8], edi
mov edx, ecx
shl edi, 0x11
shr edx, 0xf
shr ebp, 0xf
mov dword [eax + 0x70], ecx
mov dword [eax + 0xcc], ecx
mov dword [eax + 0xe0], ebx
or edi, edx
mov esi, dword [eax + 8]
mov edx, dword [esp + 0x3c]
mov ebx, dword [eax]
shl ecx, 0x11
or ecx, ebp
mov dword [eax + 0xec], ecx
mov ecx, esi
mov ebp, edx
shr ecx, 0x13
shl edx, 0xd
or ecx, edx
shl esi, 0xd
mov dword [eax + 0xe8], edi
mov edi, dword [esp + 0x10]
mov edx, edi
shr edx, 0x13
or edx, esi
mov esi, ebx
shr esi, 0x13
shl edi, 0xd
or edi, esi
shr ebp, 0x13
mov dword [eax + 0x60], ecx
shl ebx, 0xd
or ebx, ebp
mov ebp, ecx
shl ecx, 0xf
mov esi, edx
shr esi, 0x11
or esi, ecx
mov ecx, edi
shr ecx, 0x11
mov dword [eax + 0x64], edx
shl edx, 0xf
or ecx, edx
mov dword [eax + 0x68], edi
mov edx, ebx
shl edi, 0xf
shr ebp, 0x11
shr edx, 0x11
or edi, edx
mov dword [eax + 0x80], esi
mov dword [eax + 0x6c], ebx
mov edx, ecx
shl ebx, 0xf
or ebx, ebp
mov ebp, esi
shl esi, 0x11
mov dword [eax + 0x84], ecx
shr edx, 0xf
or edx, esi
mov esi, edi
shr esi, 0xf
shl ecx, 0x11
or esi, ecx
mov dword [eax + 0x88], edi
mov ecx, ebx
shr ecx, 0xf
shr ebp, 0xf
shl edi, 0x11
or edi, ecx
mov dword [eax + 0x8c], ebx
shl ebx, 0x11
or ebx, ebp
mov ebp, esi
mov dword [eax + 0xb4], esi
add esi, esi
mov ecx, edi
add esi, esi
shr ecx, 0x1e
or ecx, esi
mov dword [eax + 0xb8], edi
add edi, edi
mov esi, ebx
shr esi, 0x1e
add edi, edi
shr ebp, 0x1e
or edi, esi
mov dword [eax + 0xb0], edx
mov dword [eax + 0xbc], ebx
mov esi, edx
add ebx, ebx
shr esi, 0x1e
add ebx, ebx
or esi, ebx
mov dword [eax + 0xf4], edi
add edx, edx
pop edi
mov dword [eax + 0xf8], esi
add edx, edx
pop esi
or edx, ebp
pop ebp
mov dword [eax + 0xf0], ecx
mov dword [eax + 0xfc], edx
mov eax, 4
pop ebx
add esp, 0x20
ret