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

Disassembly:
mov eax, 0x20
call fcn.0049d300
mov edx, dword [esp + 0x28]
movzx eax, byte [edx + 1]
xor ecx, ecx
mov ch, byte [edx]
push ebx
xor ebx, ebx
push ebp
push esi
push edi
xor ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 8
xor ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [eax], ecx
mov bh, byte [edx + 4]
movzx esi, byte [edx + 5]
xor ebx, esi
movzx esi, byte [edx + 6]
shl ebx, 8
xor ebx, esi
movzx esi, byte [edx + 7]
shl ebx, 8
xor esi, ebx
xor ebx, ebx
mov dword [eax + 4], esi
mov bh, byte [edx + 8]
movzx edi, byte [edx + 9]
xor ebx, edi
movzx edi, byte [edx + 0xa]
shl ebx, 8
xor ebx, edi
movzx edi, byte [edx + 0xb]
shl ebx, 8
xor ebx, edi
mov ebp, ebx
xor ebx, ebx
mov dword [eax + 8], ebp
mov bh, byte [edx + 0xc]
movzx edi, byte [edx + 0xd]
xor ebx, edi
movzx edi, byte [edx + 0xe]
shl ebx, 8
xor ebx, edi
movzx edi, byte [edx + 0xf]
shl ebx, 8
xor edi, ebx
cmp dword [esp + 0x34], 0x80
mov dword [eax + 0xc], edi
je 0x55d19a
movzx esi, byte [edx + 0x11]
xor ecx, ecx
mov ch, byte [edx + 0x10]
xor ebx, ebx
xor ecx, esi
movzx esi, byte [edx + 0x12]
shl ecx, 8
xor ecx, esi
movzx esi, byte [edx + 0x13]
shl ecx, 8
xor ecx, esi
mov dword [eax + 0x20], ecx
mov bh, byte [edx + 0x14]
movzx esi, byte [edx + 0x15]
xor ebx, esi
movzx esi, byte [edx + 0x16]
shl ebx, 8
xor ebx, esi
movzx esi, byte [edx + 0x17]
shl ebx, 8
xor esi, ebx
cmp dword [esp + 0x34], 0xc0
mov dword [eax + 0x24], esi
jne 0x55d14b
mov ebp, ecx
not ebp
mov edi, esi
mov dword [eax + 0x28], ebp
not edi
jmp 0x55d18c
movzx edi, byte [edx + 0x19]
xor ebx, ebx
mov bh, byte [edx + 0x18]
xor ebx, edi
movzx edi, byte [edx + 0x1a]
shl ebx, 8
xor ebx, edi
movzx edi, byte [edx + 0x1b]
shl ebx, 8
xor ebx, edi
mov ebp, ebx
xor ebx, ebx
mov dword [eax + 0x28], ebp
mov bh, byte [edx + 0x1c]
movzx edi, byte [edx + 0x1d]
xor ebx, edi
movzx edi, byte [edx + 0x1e]
movzx edx, byte [edx + 0x1f]
shl ebx, 8
xor ebx, edi
shl ebx, 8
xor ebx, edx
mov edi, ebx
xor ecx, dword [eax]
xor esi, dword [eax + 4]
xor ebp, dword [eax + 8]
mov dword [eax + 0x2c], edi
xor edi, dword [eax + 0xc]
mov ebx, esi
xor ebx, 0x3bcc908b
mov dword [esp + 0x38], ebx
mov edx, ecx
xor edx, 0xa09e667f
mov dword [esp + 0x3c], edx
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x1c], edx
mov edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x1c]
xor edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x3c]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x3c]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5eac80]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x3c], edx
mov edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x3c]
xor edx, dword [ebx*4 + 0x5eac80]
mov ebx, dword [esp + 0x38]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x38]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x1c]
xor edx, ebx
mov dword [esp + 0x38], edx
xor ebp, edx
mov edx, ebx
shr ebx, 8
shl edx, 0x18
add edx, ebx
xor edx, dword [esp + 0x38]
xor edi, edx
mov ebx, edi
xor ebx, 0x4caa73b2
mov dword [esp + 0x38], ebx
mov edx, ebp
xor edx, 0xb67ae858
mov dword [esp + 0x3c], edx
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x1c], edx
mov edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x1c]
xor edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x3c]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x3c]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5eac80]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov ebx, edx
shr ebx, 0x10
movzx edx, dh
and ebx, 0xff
mov dword [esp + 0x3c], edx
mov edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x3c]
xor edx, dword [ebx*4 + 0x5eac80]
mov ebx, dword [esp + 0x38]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x38]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [eax]
xor edx, dword [esp + 0x10]
xor ebx, edx
xor ecx, ebx
mov dword [esp + 0x38], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
mov ebx, edx
shl ebx, 0x18
shr edx, 8
add ebx, edx
xor ebx, dword [esp + 0x3c]
mov edx, ecx
xor ebx, dword [esp + 0x38]
xor edx, 0xc6ef372f
xor esi, ebx
mov dword [esp + 0x10], edx
mov ebx, esi
xor ebx, 0xe94f82be
mov dword [esp + 0x38], ebx
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x18], edx
mov edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x18]
xor edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x10]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5eac80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x18], edx
mov edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x18]
xor edx, dword [ebx*4 + 0x5eac80]
mov ebx, dword [esp + 0x38]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x38]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [eax + 8]
xor edx, dword [esp + 0x14]
xor ebx, edx
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0xc]
xor ebp, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
mov ebx, edx
shl ebx, 0x18
shr edx, 8
add ebx, edx
xor ebx, dword [esp + 0x10]
mov edx, ebp
xor ebx, dword [esp + 0x38]
xor edx, 0x54ff53a5
xor edi, ebx
mov ebx, edi
xor ebx, 0xf1d36f1c
mov dword [esp + 0x38], ebx
mov ebx, edx
mov dword [esp + 0x14], edx
movzx edx, dh
shr ebx, 0x10
and ebx, 0xff
mov dword [esp + 0x20], edx
mov edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x20]
xor edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x14]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x14]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5eac80]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
mov ebx, edx
movzx edx, dh
shr ebx, 0x10
and ebx, 0xff
mov dword [esp + 0x20], edx
mov edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x20]
xor edx, dword [ebx*4 + 0x5eac80]
mov ebx, dword [esp + 0x38]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x38]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x14]
xor edx, ebx
xor ecx, edx
mov dword [esp + 0x38], edx
mov edx, ebx
shl edx, 0x18
shr ebx, 8
add edx, ebx
xor edx, dword [esp + 0x38]
xor esi, edx
cmp dword [esp + 0x34], 0x80
jne 0x55d7c5
mov edx, esi
mov ebx, ecx
mov dword [eax + 0x10], ecx
shl ecx, 0xf
shr edx, 0x11
or edx, ecx
mov dword [eax + 0x14], esi
shl esi, 0xf
mov ecx, ebp
shr ecx, 0x11
or ecx, esi
mov esi, edi
mov dword [eax + 0x1c], edi
shr esi, 0x11
shl edi, 0xf
shr ebx, 0x11
or edi, ebx
mov dword [eax + 0x18], ebp
shl ebp, 0xf
or esi, ebp
mov ebp, edx
mov dword [eax + 0x30], edx
mov ebx, ecx
shl edx, 0xf
shr ebx, 0x11
or ebx, edx
mov edx, esi
mov dword [eax + 0x34], ecx
shl ecx, 0xf
shr edx, 0x11
or edx, ecx
mov ecx, edi
mov dword [eax + 0x38], esi
shl esi, 0xf
mov dword [eax + 0x3c], edi
shl edi, 0xf
shr ecx, 0x11
or ecx, esi
shr ebp, 0x11
or edi, ebp
mov ebp, edi
mov esi, ebx
shr esi, 0x11
mov dword [esp + 0x34], esi
mov esi, edx
mov dword [eax + 0x44], edx
mov edi, ecx
shr edi, 0x11
shl edx, 0xf
or edi, edx
shr esi, 0x11
mov edx, ebp
mov dword [eax + 0x40], ebx
shl ebx, 0xf
or esi, ebx
mov dword [eax + 0x48], ecx
shl ecx, 0xf
shr edx, 0x11
or edx, ecx
mov ebx, edi
mov ecx, esi
mov dword [eax + 0x60], esi
shl esi, 0xf
mov dword [eax + 0x4c], ebp
shr ebx, 0x11
or ebx, esi
shl ebp, 0xf
or ebp, dword [esp + 0x34]
mov dword [eax + 0x64], edi
shl edi, 0xf
mov esi, edx
shr esi, 0x11
or esi, edi
mov edi, ebp
shr edi, 0x11
shl edx, 0xf
shr ecx, 0x11
shl ebp, 0xf
or edi, edx
or ebp, ecx
mov dword [eax + 0x70], ebx
mov ecx, esi
shr ecx, 0x1e
mov dword [esp + 0x34], ecx
lea edx, [esi*4]
mov ecx, edi
shr ecx, 0x1e
or ecx, edx
mov edx, ebp
mov dword [eax + 0x74], esi
lea esi, [edi*4]
shr edx, 0x1e
or edx, esi
mov dword [eax + 0x78], edi
lea esi, [ebp*4]
mov edi, ebx
shr edi, 0x1e
or esi, edi
mov dword [eax + 0x7c], ebp
mov ebp, ecx
mov dword [eax + 0xa0], ecx
shl ecx, 0x11
lea edi, [ebx*4]
or edi, dword [esp + 0x34]
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
shl esi, 0x11
mov ecx, edi
shr ecx, 0xf
or esi, ecx
shr ebp, 0xf
mov dword [eax + 0xc8], esi
mov esi, dword [esp + 0x3c]
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
shr ebp, 2
mov ebx, ecx
mov dword [eax + 0x20], ecx
shl ecx, 0x1e
or ecx, ebp
mov ebp, esi
mov dword [eax + 0x24], edx
shr ebp, 2
shl edx, 0x1e
or edx, ebp
mov dword [eax + 0x28], esi
mov ebp, edi
shr ebx, 2
shl esi, 0x1e
mov dword [eax + 0x2c], edi
shr ebp, 2
or esi, ebp
shl edi, 0x1e
or edi, ebx
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
mov ebx, esi
shr edi, 0x11
or edi, ecx
shr ebx, 0x11
or ebx, edx
mov edx, edi
shr edx, 0xf
mov ecx, ebp
mov dword [eax + 0x5c], ebp
mov dword [eax + 0x58], esi
shr ecx, 0x11
shl ebp, 0xf
or ebp, dword [esp + 0x34]
mov dword [esp + 0x34], edx
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
shr edx, 0xf
shl esi, 0x11
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 edi, edx
mov dword [eax + 0x90], ecx
shl ecx, 0x11
shr edi, 0xf
or edi, ecx
mov dword [eax + 0x94], edx
mov ecx, esi
shl edx, 0x11
shr ecx, 0xf
or ecx, edx
mov edx, ebp
mov dword [eax + 0x98], esi
shr ebx, 0xf
shr edx, 0xf
mov dword [eax + 0x9c], ebp
shl esi, 0x11
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 edx, dword [eax + 0x20]
mov dword [eax + 0x30], ecx
xor ecx, edx
mov edx, dword [eax + 0x24]
mov dword [eax + 0x34], esi
xor esi, edx
mov dword [eax + 0x38], ebp
mov dword [eax + 0x3c], edi
mov ebx, esi
xor ebx, 0xde682d1d
mov dword [esp + 0x34], ebx
mov edx, ecx
xor edx, 0x10e527fa
mov dword [esp + 0x38], edx
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x20], edx
mov edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x20]
xor edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x38]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x38]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5eac80]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x20], edx
mov edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x20]
xor edx, dword [ebx*4 + 0x5eac80]
mov ebx, dword [esp + 0x34]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x34]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [eax + 0x28]
xor edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
xor edx, ebx
xor ebp, edx
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
mov ebx, edx
shl ebx, 0x18
shr edx, 8
add ebx, edx
xor ebx, dword [esp + 0x34]
mov edx, ebp
xor ebx, dword [esp + 0x14]
xor edx, 0xb05688c2
xor edi, ebx
mov dword [esp + 0x38], edx
mov ebx, edi
xor ebx, 0xb3e6c1fd
mov dword [esp + 0x34], ebx
mov ebx, edx
shr ebx, 0x10
movzx edx, dh
and ebx, 0xff
mov dword [esp + 0x20], edx
mov edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x20]
xor edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x38]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x38]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5eac80]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x34]
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
movzx edx, dh
mov dword [esp + 0x38], edx
mov edx, dword [ebx*4 + 0x5eb480]
mov ebx, dword [esp + 0x38]
xor edx, dword [ebx*4 + 0x5eac80]
mov ebx, dword [esp + 0x34]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x5eb080]
mov ebx, dword [esp + 0x34]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x5ea880]
mov ebx, dword [esp + 0x20]
xor edx, ebx
xor ecx, edx
mov dword [esp + 0x34], edx
mov edx, ebx
shr ebx, 8
shl edx, 0x18
add edx, ebx
xor edx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
xor esi, edx
mov ebx, esi
shr ebx, 2
mov edx, ecx
mov dword [eax + 0x14], esi
shl ecx, 0x1e
or ecx, ebx
shl esi, 0x1e
mov ebx, ebp
shr ebx, 2
or esi, ebx
mov ebx, edi
shr ebx, 2
mov dword [eax + 0x18], ebp
shr edx, 2
mov dword [eax + 0x1c], edi
shl ebp, 0x1e
or ebp, ebx
mov ebx, esi
shl edi, 0x1e
or edi, edx
shr ebx, 2
mov edx, ecx
mov dword [eax + 0x50], ecx
mov dword [eax + 0x54], esi
shl ecx, 0x1e
or ecx, ebx
shl esi, 0x1e
mov ebx, ebp
shr ebx, 2
or esi, ebx
mov ebx, edi
mov dword [eax + 0x58], ebp
shr edx, 2
shr ebx, 2
mov dword [eax + 0x5c], edi
shl ebp, 0x1e
or ebp, ebx
shl edi, 0x1e
or edi, edx
mov ebx, esi
mov dword [eax + 0xa4], esi
shl esi, 0x13
mov edx, ebp
shr edx, 0xd
or edx, esi
mov esi, edi
mov dword [eax + 0xa8], ebp
shr esi, 0xd
shl ebp, 0x13
or esi, ebp
mov dword [eax + 0xac], edi
shr ebx, 0xd
mov dword [eax + 0xa0], ecx
mov dword [eax + 0x100], edx
mov dword [eax + 0x104], esi
shl edi, 0x13
mov edx, ecx
shr edx, 0xd
or edi, edx
shl ecx, 0x13
or ecx, ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + 0x108], edi
mov edi, dword [eax + 0x24]
mov dword [eax + 0x10c], ecx
mov ecx, dword [eax + 0x20]
mov edx, edi
shr edx, 0x11
mov ebp, ecx
shl ecx, 0xf
or edx, ecx
mov ecx, dword [eax + 0x28]
shl edi, 0xf
mov esi, ecx
shr esi, 0x11
or esi, edi
shr ebp, 0x11
mov edi, ebx
shr edi, 0x11
shl ecx, 0xf
or edi, ecx
mov dword [eax + 0x20], edx
shl ebx, 0xf
or ebx, ebp
mov ebp, edx
shl edx, 0xf
mov ecx, esi
shr ecx, 0x11
or ecx, edx
mov edx, edi
mov dword [eax + 0x24], esi
shr edx, 0x11
shl esi, 0xf
or edx, esi
shr ebp, 0x11
mov dword [eax + 0x28], edi
mov esi, ebx
shl edi, 0xf
mov dword [eax + 0x2c], ebx
shl ebx, 0xf
or ebx, ebp
mov ebp, edx
shr esi, 0x11
or esi, edi
shr ebp, 2
mov edi, ecx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
shl ecx, 0x1e
or ecx, ebp
shl edx, 0x1e
mov ebp, esi
shr ebp, 2
or edx, ebp
mov ebp, ebx
mov dword [eax + 0x48], esi
shr edi, 2
shr ebp, 2
mov dword [eax + 0x4c], ebx
shl esi, 0x1e
or esi, ebp
mov ebp, edx
shl ebx, 0x1e
or ebx, edi
mov dword [eax + 0x94], edx
add edx, edx
mov edi, esi
add edx, edx
shr edi, 0x1e
or edi, edx
mov edx, ebx
mov dword [eax + 0x98], esi
shr ebp, 0x1e
shr edx, 0x1e
mov dword [eax + 0x90], ecx
mov dword [eax + 0x9c], ebx
add esi, esi
add esi, esi
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 ebx, ecx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
shl ecx, 0x1e
or ecx, ebp
shl edx, 0x1e
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 edx, ecx
mov dword [eax + 0x7c], edi
mov dword [eax + 0xc8], edi
mov dword [eax + 0x70], ecx
mov dword [eax + 0xcc], ecx
shl edi, 0x11
shr edx, 0xf
shr ebp, 0xf
or edi, edx
shl ecx, 0x11
or ecx, ebp
mov dword [eax + 0xe0], ebx
mov dword [eax + 0xe8], edi
mov dword [eax + 0xec], ecx
mov esi, dword [eax + 8]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov ebx, dword [eax]
mov ecx, esi
mov ebp, edx
shr ecx, 0x13
shl esi, 0xd
shl edx, 0xd
or ecx, edx
mov edx, edi
shr edx, 0x13
or edx, esi
mov esi, ebx
shr esi, 0x13
shl edi, 0xd
or edi, esi
shr ebp, 0x13
shl ebx, 0xd
or ebx, ebp
mov ebp, ecx
mov dword [eax + 0x60], 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 edx, ebx
mov dword [eax + 0x68], edi
shl edi, 0xf
mov dword [eax + 0x80], esi
mov dword [eax + 0x6c], ebx
shr ebp, 0x11
shr edx, 0x11
or edi, edx
shl ebx, 0xf
or ebx, ebp
mov ebp, esi
shl esi, 0x11
mov edx, ecx
mov dword [eax + 0x84], ecx
shr edx, 0xf
or edx, esi
mov esi, edi
shr esi, 0xf
shl ecx, 0x11
or esi, ecx
mov ecx, ebx
mov dword [eax + 0x88], edi
mov dword [eax + 0x8c], ebx
shl edi, 0x11
shr ecx, 0xf
or edi, ecx
shr ebp, 0xf
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
or edi, esi
mov dword [eax + 0xbc], ebx
add ebx, ebx
mov esi, edx
shr esi, 0x1e
add ebx, ebx
shr ebp, 0x1e
mov dword [eax + 0xb0], edx
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