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

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