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

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