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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
cmp dword [ebp + 0xc], 0x18
push ebx
push esi
sbb eax, eax
push edi
add eax, 4
mov edi, ecx
mov dword [edi + 0x10], eax
lea eax, [eax*8 + 2]
mov dword [esp + 0x44], eax
lea esi, [eax + eax]
lea eax, [edi + 0x14]
push eax
call fcn.004e1230
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x40], ecx
lea ecx, [edi + 4]
xor esi, esi
xor ebx, ebx
call eax
test al, al
jne 0x4df7c3
mov ebx, dword [esp + 0x44]
or esi, 0xffffffff
dec ebx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
add eax, 4
mov edx, dword [eax + 4]
add eax, 4
mov eax, dword [eax + 4]
bswap edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x40]
bswap eax
bswap ecx
mov dword [esp + 0x28], eax
lea eax, [edx + ebx*8]
bswap edi
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x38], ecx
or edx, edi
or ecx, ebx
cmp dword [ebp + 0xc], 0x10
mov dword [esp + 0x3c], edi
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
jne 0x4dfed6
mov edi, dword [esp + 0x24]
mov dword [esp + 0x4c], edi
mov ebx, edi
xor edi, edi
or ebx, edi
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x50]
xor edx, edx
or edx, dword [esp + 0x28]
mov edi, esi
and edi, 0xfffffff0
mov dword [edi + eax + 8], ebx
mov dword [edi + eax + 0xc], ecx
mov edi, dword [esp + 0x5c]
mov dword [eax], edx
mov ebx, ecx
mov dword [eax + 4], edi
xor ecx, ecx
mov dword [esp + 0x58], edx
shld edi, edx, 0xf
or ecx, edi
mov dword [esp + 0x44], ecx
shr ebx, 0x11
shl edx, 0xf
or ebx, edx
mov edx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffffc0
mov dword [ecx + eax + 0x20], ebx
mov ebx, dword [esp + 0x44]
mov dword [ecx + eax + 0x24], ebx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
shld ebx, ecx, 0xf
shl ecx, 0xf
shr edx, 0x11
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xffffffb0
mov dword [ecx + eax + 0x28], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0x2c], edi
mov ecx, dword [esp + 0x50]
shrd ecx, ebx, 0x13
xor edi, edi
or edi, ecx
shl edx, 0xd
shr ebx, 0x13
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffff60
mov dword [ecx + eax + 0x50], edi
mov dword [ecx + eax + 0x54], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
shrd ecx, ebx, 0x13
xor edi, edi
or edi, ecx
shl edx, 0xd
shr ebx, 0x13
or edx, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xffffff50
mov dword [ecx + eax + 0x58], edi
mov dword [ecx + eax + 0x5c], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
shrd ecx, ebx, 4
xor edi, edi
or edi, ecx
shl edx, 0x1c
shr ebx, 4
mov ecx, esi
or edx, ebx
and ecx, 0xffffff40
mov dword [ecx + eax + 0x60], edi
mov dword [ecx + eax + 0x64], edx
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
shld ebx, ecx, 0xd
mov edx, dword [esp + 0x54]
shl ecx, 0xd
shr edx, 0x13
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xfffffef0
mov dword [ecx + eax + 0x88], edx
mov dword [ecx + eax + 0x8c], edi
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
shld ebx, ecx, 0xd
shl ecx, 0xd
shr edx, 0x13
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xffffff00
mov dword [ecx + eax + 0x80], edx
mov dword [ecx + eax + 0x84], edi
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
shld ecx, edx, 0x1e
mov edi, ecx
mov ecx, dword [esp + 0x54]
shr ecx, 2
shl edx, 0x1e
or edx, ecx
xor ebx, ebx
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xfffffed0
mov dword [ecx + eax + 0x98], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + eax + 0x9c], edi
mov ecx, dword [esp + 0x50]
shld ebx, ecx, 0x1e
shl ecx, 0x1e
shr edx, 2
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x50]
mov ecx, esi
and ecx, 0xfffffee0
mov dword [ecx + eax + 0x90], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0x94], edi
mov ecx, dword [esp + 0x54]
shrd ebx, ecx, 0x11
shr ecx, 0x11
shl edx, 0xf
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xfffffe90
mov dword [ecx + eax + 0xb8], edi
mov edi, dword [esp + 0x58]
mov dword [ecx + eax + 0xbc], edx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
shrd edi, ecx, 0x11
shl edx, 0xf
shr ecx, 0x11
or edx, ecx
xor ebx, ebx
or ebx, edi
mov ecx, esi
and ecx, 0xfffffea0
mov dword [ecx + eax + 0xb0], ebx
mov dword [ecx + eax + 0xb4], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
xor ecx, 0x3bcc908b
mov dword [esp + 0x44], ecx
xor edx, 0xa09e667f
mov ebx, edx
shr ebx, 0x10
movzx edi, bl
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x67d900]
xor ecx, dword [edi*4 + 0x67dd00]
mov ebx, edx
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*4 + 0x67e100]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x44]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x67dd00]
xor edi, dword [ebx*4 + 0x67e100]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e500]
movzx edx, dl
xor edi, dword [edx*4 + 0x67d900]
xor edi, ecx
mov edx, edi
xor edx, dword [esp + 0x24]
ror ecx, 8
xor ecx, edi
xor ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
xor ecx, 0x4caa73b2
xor edx, 0xb67ae858
mov dword [esp + 0x44], ecx
mov ebx, edx
shr ebx, 0x10
movzx edi, bl
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x67d900]
xor ecx, dword [edi*4 + 0x67dd00]
mov ebx, edx
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*4 + 0x67e100]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x44]
mov ebx, edx
shr ebx, 0x10
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x67dd00]
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e100]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e500]
movzx edx, dl
xor edi, dword [edx*4 + 0x67d900]
xor edi, ecx
ror ecx, 8
xor ecx, edi
mov dword [esp + 0x18], ecx
xor ecx, 0xe94f82be
mov edx, edi
xor edx, 0xc6ef372f
mov dword [esp + 0x34], ecx
mov ecx, edx
mov ebx, edx
shr ecx, 0x18
shr ebx, 0x10
mov ecx, dword [ecx*4 + 0x67d900]
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x67dd00]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x67e100]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x34]
mov ebx, edx
shr edx, 0x10
shr ebx, 0x18
movzx edx, dl
mov dword [esp + 0x44], edx
mov edx, dword [ebx*4 + 0x67dd00]
mov ebx, dword [esp + 0x44]
xor edx, dword [ebx*4 + 0x67e100]
mov ebx, dword [esp + 0x34]
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x67e500]
movzx ebx, byte [esp + 0x34]
xor edx, dword [ebx*4 + 0x67d900]
xor edx, ecx
mov dword [esp + 0x44], edx
xor edx, dword [esp + 0x14]
xor edx, dword [esp + 0x24]
ror ecx, 8
xor ecx, dword [esp + 0x44]
mov dword [esp + 0x14], edx
xor ecx, dword [esp + 0x10]
xor edx, 0x54ff53a5
xor ecx, dword [esp + 0x28]
mov ebx, edx
mov dword [esp + 0x10], ecx
xor ecx, 0xf1d36f1c
shr ebx, 0x10
mov dword [esp + 0x34], ecx
mov ecx, edx
movzx ebx, bl
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x67d900]
xor ecx, dword [ebx*4 + 0x67dd00]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x67e100]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x34]
mov ebx, edx
shr edx, 0x10
movzx edx, dl
shr ebx, 0x18
mov dword [esp + 0x44], edx
mov edx, dword [ebx*4 + 0x67dd00]
mov ebx, dword [esp + 0x44]
xor edx, dword [ebx*4 + 0x67e100]
mov ebx, dword [esp + 0x34]
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x67e500]
movzx ebx, byte [esp + 0x34]
xor edx, dword [ebx*4 + 0x67d900]
xor edx, ecx
ror ecx, 8
xor ecx, edx
xor ecx, dword [esp + 0x18]
xor edx, edi
mov ebx, ecx
xor edi, edi
xor ecx, ecx
or ebx, edi
or ecx, edx
mov dword [esp + 0x50], ebx
xor edx, edx
xor ebx, ebx
or edx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov edi, dword [esp + 0x14]
or edi, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], edi
mov edi, esi
and edi, 0xffffffd0
mov dword [edi + eax + 0x18], ebx
mov dword [edi + eax + 0x1c], ecx
mov ebx, dword [esp + 0x5c]
mov edi, esi
and edi, 0xffffffe0
mov dword [edi + eax + 0x10], edx
mov dword [edi + eax + 0x14], ebx
mov edi, ecx
shld ebx, edx, 0xf
xor ecx, ecx
or ecx, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x44], ecx
shr edi, 0x11
shl edx, 0xf
or edi, edx
mov edx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffffa0
mov dword [ecx + eax + 0x30], edi
mov edi, dword [esp + 0x44]
mov dword [ecx + eax + 0x34], edi
mov ecx, dword [esp + 0x50]
shld ebx, ecx, 0xf
shl ecx, 0xf
shr edx, 0x11
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xffffff90
mov dword [ecx + eax + 0x38], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0x3c], edi
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
shld edi, edx, 0x1e
shr ecx, 2
shl edx, 0x1e
or edx, ecx
xor ebx, ebx
or edi, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x4c], edi
mov ecx, esi
and ecx, 0xffffff80
mov dword [ecx + eax + 0x40], edx
mov dword [ecx + eax + 0x44], edi
mov edi, dword [esp + 0x54]
mov ecx, ebx
shld edi, ecx, 0x1e
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x5c]
shl ecx, 0x1e
shr edx, 2
or edx, ecx
mov ecx, edi
xor edi, edi
or edi, ecx
mov ecx, esi
and ecx, 0xffffff70
mov dword [ecx + eax + 0x48], edx
mov dword [ecx + eax + 0x4c], edi
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x5c]
shrd ecx, edi, 0x13
mov dword [esp + 0x18], edx
xor edx, edx
shl ebx, 0xd
shr edi, 0x13
or edx, ecx
or ebx, edi
mov ecx, esi
and ecx, 0xffffff30
mov dword [ecx + eax + 0x68], edx
mov dword [ecx + eax + 0x6c], ebx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
shrd ecx, ebx, 4
shl edx, 0x1c
xor edi, edi
or edi, ecx
shr ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffff20
mov dword [ecx + eax + 0x70], edi
mov dword [ecx + eax + 0x74], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
shrd ecx, ebx, 4
shl edx, 0x1c
xor edi, edi
or edi, ecx
shr ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x50]
mov ecx, esi
and ecx, 0xffffff10
mov dword [ecx + eax + 0x78], edi
mov dword [ecx + eax + 0x7c], edx
mov edx, dword [esp + 0x48]
mov ecx, esi
and ecx, 0xfffffeb0
mov dword [ecx + eax + 0xa8], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + eax + 0xac], edx
mov edx, dword [esp + 0x18]
mov ecx, esi
and ecx, 0xfffffec0
mov dword [ecx + eax + 0xa0], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax + 0xa4], edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
shrd ebx, ecx, 0x11
shr ecx, 0x11
shl edx, 0xf
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xfffffe80
mov dword [ecx + eax + 0xc0], edi
mov edi, dword [esp + 0x58]
mov dword [ecx + eax + 0xc4], edx
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
shrd edi, edx, 0x11
xor ebx, ebx
shl ecx, 0xf
shr edx, 0x11
or ebx, edi
or ecx, edx
and esi, 0xfffffe70
mov dword [esi + eax + 0xc8], ebx
mov dword [esi + eax + 0xcc], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ebx, dword [esp + 0x24]
xor edi, edi
or edi, dword [esp + 0x28]
mov dword [esp + 0x4c], ebx
xor ebx, ebx
mov dword [esp + 0x58], edi
mov edi, ebx
mov ebx, dword [esp + 0x4c]
or ebx, edi
mov dword [esp + 0x5c], ebx
mov edi, esi
and edi, 0xfffffff0
mov dword [edi + eax + 8], edx
mov dword [edi + eax + 0xc], ecx
shrd edx, ecx, 0x13
mov edi, dword [esp + 0x58]
mov dword [eax], edi
mov dword [eax + 4], ebx
shr ecx, 0x13
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x50]
shl edi, 0xd
or edi, ecx
mov ecx, esi
and ecx, 0xffffff40
mov dword [ecx + eax + 0x60], ebx
mov dword [ecx + eax + 0x64], edi
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
shrd ecx, ebx, 0x13
xor edi, edi
or edi, ecx
shl edx, 0xd
shr ebx, 0x13
or edx, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xffffff30
mov dword [ecx + eax + 0x68], edi
mov dword [ecx + eax + 0x6c], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
shrd ecx, ebx, 4
xor edi, edi
or edi, ecx
shl edx, 0x1c
shr ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffff00
mov dword [ecx + eax + 0x80], edi
mov dword [ecx + eax + 0x84], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
shrd ecx, ebx, 4
xor edi, edi
or edi, ecx
shl edx, 0x1c
shr ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xfffffef0
mov dword [ecx + eax + 0x88], edi
mov dword [ecx + eax + 0x8c], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
shld ebx, ecx, 0xd
shr edx, 0x13
shl ecx, 0xd
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xfffffe90
mov dword [ecx + eax + 0xb8], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + eax + 0xbc], edi
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
shld ebx, ecx, 0xd
shl ecx, 0xd
shr edx, 0x13
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x50]
mov ecx, esi
and ecx, 0xfffffea0
mov dword [ecx + eax + 0xb0], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0xb4], edi
mov ecx, dword [esp + 0x54]
shrd ebx, ecx, 0x11
shr ecx, 0x11
shl edx, 0xf
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xfffffe10
mov dword [ecx + eax + 0xf8], edi
mov esp, 0xf801
add byte [ebx - 0x76a7db84], cl
xchg esp, eax
add esp, edi
add byte [eax], al
add byte [ebx - 0x74a3dbb4], cl
push esp
and al, 0x50
shrd edi, ecx, 0x11
shr ecx, 0x11
shl edx, 0xf
or edx, ecx
xor ebx, ebx
or ebx, edi
mov ecx, esi
and ecx, 0xfffffe20
cmp dword [ebp + 0xc], 0x18
mov dword [ecx + eax + 0xf0], ebx
mov dword [ecx + eax + 0xf4], edx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
bswap ecx
bswap edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
jne 0x4e00ad
mov edx, ecx
not edx
mov dword [esp + 0x30], edx
mov edx, edi
not edx
jmp 0x4e00bb
mov ebx, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
bswap ebx
mov dword [esp + 0x30], ebx
bswap edx
mov dword [esp + 0x34], edx
xor edx, edx
or edx, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x50], edx
xor edx, edx
or edx, dword [esp + 0x34]
xor ebx, ebx
or ecx, ebx
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], edi
or edi, ebx
mov dword [esp + 0x54], ecx
mov ebx, ecx
mov dword [esp + 0x5c], edi
shld edi, edx, 0xf
xor ecx, ecx
or ecx, edi
shl edx, 0xf
mov dword [esp + 0x2c], ecx
shr ebx, 0x11
or ebx, edx
mov edx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffffc0
mov dword [ecx + eax + 0x20], ebx
mov ebx, dword [esp + 0x2c]
mov dword [ecx + eax + 0x24], ebx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
shld ebx, ecx, 0xf
shr edx, 0x11
shl ecx, 0xf
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xffffffb0
mov dword [ecx + eax + 0x28], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0x2c], edi
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
shld edi, edx, 0x1e
shl edx, 0x1e
shr ecx, 2
or edx, ecx
xor ebx, ebx
or edi, ebx
mov dword [esp + 0x48], edx
mov ecx, esi
and ecx, 0xffffff80
mov dword [ecx + eax + 0x40], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + eax + 0x44], edi
mov ecx, dword [esp + 0x54]
mov ebx, ecx
shld ebx, edx, 0x1e
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x5c]
shl edx, 0x1e
shr edi, 2
or edi, edx
mov edx, ebx
xor ebx, ebx
or ebx, edx
mov edx, esi
and edx, 0xffffff70
mov dword [edx + eax + 0x48], edi
mov dword [edx + eax + 0x4c], ebx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x50]
shrd ebx, ecx, 4
mov dword [esp + 0x18], edi
xor edi, edi
shl edx, 0x1c
shr ecx, 4
or edi, ebx
or edx, ecx
xor ebx, ebx
mov ecx, esi
and ecx, 0xfffffee0
mov dword [ecx + eax + 0x90], edi
mov dword [ecx + eax + 0x94], edx
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
shrd edi, ecx, 4
shr ecx, 4
or ebx, edi
shl edx, 0x1c
or edx, ecx
mov ecx, esi
and ecx, 0xfffffed0
mov dword [ecx + eax + 0x98], ebx
mov dword [ecx + eax + 0x9c], edx
mov edx, dword [esp + 0x48]
mov ecx, esi
and ecx, 0xfffffe50
mov dword [ecx + eax + 0xd8], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + eax + 0xdc], edx
mov edx, dword [esp + 0x18]
mov ecx, esi
and ecx, 0xfffffe60
mov dword [ecx + eax + 0xd0], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax + 0xd4], edx
mov edx, dword [esp + 0x40]
xor edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
xor ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
xor ecx, 0x3bcc908b
mov dword [esp + 0x14], ecx
xor edx, 0xa09e667f
mov ebx, edx
shr ebx, 0x10
movzx edi, bl
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x67d900]
xor ecx, dword [edi*4 + 0x67dd00]
mov ebx, edx
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*4 + 0x67e100]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x14]
mov ebx, edx
shr ebx, 0x10
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x67dd00]
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e100]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e500]
movzx edx, dl
xor edi, dword [edx*4 + 0x67d900]
xor edi, ecx
mov edx, edi
xor edx, dword [esp + 0x30]
xor edx, dword [esp + 0x24]
ror ecx, 8
xor ecx, edi
xor ecx, dword [esp + 0x34]
mov ebx, edx
xor ecx, dword [esp + 0x28]
xor ebx, 0xb67ae858
mov dword [esp + 0x10], ecx
xor ecx, 0x4caa73b2
mov dword [esp + 0x48], ecx
mov ecx, ebx
mov dword [esp + 0x14], edx
shr ecx, 0x18
mov edx, ebx
shr edx, 0x10
movzx edi, dl
mov edx, dword [ecx*4 + 0x67d900]
xor edx, dword [edi*4 + 0x67dd00]
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x67e100]
movzx ecx, bl
xor edx, dword [ecx*4 + 0x67e500]
mov ecx, dword [esp + 0x48]
mov ebx, ecx
mov edi, ecx
shr edi, 0x18
mov edi, dword [edi*4 + 0x67dd00]
shr ebx, 0x10
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e100]
mov ebx, ecx
movzx ecx, cl
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e500]
xor edi, dword [ecx*4 + 0x67d900]
xor edi, edx
ror edx, 8
xor edx, edi
xor edx, dword [esp + 0x18]
mov ebx, edi
xor edx, dword [esp + 0x3c]
xor ebx, dword [esp + 0x2c]
mov ecx, edx
xor ebx, dword [esp + 0x38]
xor ecx, 0xe94f82be
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], edx
mov edi, ebx
xor edi, 0xc6ef372f
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
mov edx, edi
shr edx, 0x18
mov edx, dword [edx*4 + 0x67d900]
xor edx, dword [ecx*4 + 0x67dd00]
mov ecx, edi
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x67e100]
mov dword [esp + 0x48], edi
movzx ecx, byte [esp + 0x48]
xor edx, dword [ecx*4 + 0x67e500]
mov ecx, dword [esp + 0x2c]
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x67dd00]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
shr ecx, 8
shr eax, 0x10
movzx ecx, cl
movzx eax, al
xor edi, dword [eax*4 + 0x67e100]
xor edi, dword [ecx*4 + 0x67e500]
movzx ecx, byte [esp + 0x2c]
xor edi, dword [ecx*4 + 0x67d900]
xor edi, edx
mov ecx, edi
xor ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x24]
ror edx, 8
xor edx, edi
xor edx, dword [esp + 0x10]
mov edi, ecx
xor edx, dword [esp + 0x28]
xor edi, 0x54ff53a5
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edi
mov ecx, edx
xor ecx, 0xf1d36f1c
mov dword [esp + 0x2c], ecx
mov ecx, edi
shr ecx, 0x10
movzx eax, cl
mov edx, edi
shr edx, 0x18
mov ecx, dword [edx*4 + 0x67d900]
xor ecx, dword [eax*4 + 0x67dd00]
mov eax, dword [esp + 0x2c]
mov edx, edi
shr edx, 8
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e100]
movzx edx, byte [esp + 0x48]
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x2c]
shr edx, 0x18
mov edi, dword [edx*4 + 0x67dd00]
mov edx, dword [esp + 0x2c]
shr edx, 8
movzx edx, dl
shr eax, 0x10
movzx eax, al
xor edi, dword [eax*4 + 0x67e100]
mov eax, dword [esp + 0x3c]
xor edi, dword [edx*4 + 0x67e500]
movzx edx, byte [esp + 0x2c]
xor edi, dword [edx*4 + 0x67d900]
mov edx, dword [esp + 0x18]
xor edi, ecx
xor ebx, edi
ror ecx, 8
xor ecx, edi
xor edx, ecx
xor ecx, ecx
or ecx, edx
mov dword [esp + 0x50], ecx
xor ecx, ecx
or ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
xor edi, edi
or edx, edi
mov dword [esp + 0x5c], edx
shld edx, ecx, 0xf
mov dword [esp + 0x2c], ebx
or ebx, edi
shl ecx, 0xf
mov dword [esp + 0x54], ebx
shr ebx, 0x11
or ebx, ecx
or edi, edx
mov edx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffffa0
mov dword [ecx + eax + 0x30], ebx
mov ebx, dword [esp + 0x54]
mov dword [ecx + eax + 0x34], edi
mov ecx, dword [esp + 0x50]
shld ebx, ecx, 0xf
shl ecx, 0xf
shr edx, 0x11
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xffffff90
mov dword [ecx + eax + 0x38], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax + 0x3c], edi
mov ecx, dword [esp + 0x50]
shrd ecx, ebx, 0x13
xor edi, edi
shl edx, 0xd
shr ebx, 0x13
or edi, ecx
or edx, ebx
mov ecx, esi
and ecx, 0xffffff20
mov dword [ecx + eax + 0x70], edi
mov dword [ecx + eax + 0x74], edx
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
shrd ecx, ebx, 0x13
mov edx, dword [esp + 0x50]
shl edx, 0xd
xor edi, edi
or edi, ecx
shr ebx, 0x13
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffff10
mov dword [ecx + eax + 0x78], edi
mov dword [ecx + eax + 0x7c], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
shld ebx, ecx, 0xd
shl ecx, 0xd
shr edx, 0x13
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xfffffe70
mov dword [ecx + eax + 0xc8], edx
mov dword [ecx + eax + 0xcc], edi
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
shld ebx, ecx, 0xd
shl ecx, 0xd
shr edx, 0x13
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xfffffe80
mov dword [ecx + eax + 0xc0], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + eax + 0xc4], edi
mov ecx, dword [esp + 0x58]
shld edx, ecx, 0x1e
shl ecx, 0x1e
mov edi, ecx
mov ecx, dword [esp + 0x54]
shr ecx, 2
or edi, ecx
xor ebx, ebx
or edx, ebx
mov ecx, esi
and ecx, 0xfffffe30
mov dword [ecx + eax + 0xe8], edi
mov edi, dword [esp + 0x54]
mov dword [ecx + eax + 0xec], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
shld edi, ecx, 0x1e
shl ecx, 0x1e
shr edx, 2
or edx, ecx
mov ecx, esi
and ecx, 0xfffffe40
mov dword [ecx + eax + 0xe0], edx
mov edx, dword [esp + 0x2c]
xor edx, dword [esp + 0x40]
or ebx, edi
mov dword [ecx + eax + 0xe4], ebx
mov ecx, dword [esp + 0x18]
xor ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
xor ecx, 0xde682d1d
xor edx, 0x10e527fa
mov dword [esp + 0x48], ecx
mov ecx, edx
mov ebx, edx
shr ecx, 0x18
shr ebx, 0x10
mov ecx, dword [ecx*4 + 0x67d900]
movzx edi, bl
xor ecx, dword [edi*4 + 0x67dd00]
mov ebx, edx
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*4 + 0x67e100]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67e500]
mov edx, dword [esp + 0x48]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x67dd00]
xor edi, dword [ebx*4 + 0x67e100]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e500]
movzx edx, dl
xor edi, dword [edx*4 + 0x67d900]
mov edx, dword [esp + 0x14]
xor edi, ecx
mov ebx, edi
xor ebx, dword [esp + 0x30]
xor edx, ebx
ror ecx, 8
xor ecx, edi
xor ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
xor edi, ecx
mov ecx, edx
xor ecx, 0xb05688c2
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
mov edx, edi
mov edi, ecx
shr edi, 0x18
mov edi, dword [edi*4 + 0x67d900]
xor edi, dword [ebx*4 + 0x67dd00]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x67e100]
movzx ecx, cl
xor edi, dword [ecx*4 + 0x67e500]
xor edx, 0xb3e6c1fd
mov ebx, edx
shr ebx, 0x10
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x67dd00]
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x67e100]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x67e500]
movzx edx, dl
xor ecx, dword [edx*4 + 0x67d900]
xor ebx, ebx
xor ecx, edi
mov edx, ecx
xor edx, dword [esp + 0x2c]
ror edi, 8
xor ecx, edi
xor ecx, dword [esp + 0x18]
xor edi, edi
or ebx, ecx
mov dword [esp + 0x50], ebx
or edx, edi
xor ecx, ecx
xor ebx, ebx
or ecx, dword [esp + 0x10]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ecx
mov edi, dword [esp + 0x14]
or edi, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], edi
mov edi, esi
and edi, 0xffffffd0
mov dword [edi + eax + 0x18], ebx
mov dword [edi + eax + 0x1c], edx
mov ebx, dword [esp + 0x5c]
mov edi, esi
and edi, 0xffffffe0
mov dword [edi + eax + 0x10], ecx
mov dword [edi + eax + 0x14], ebx
shld ebx, ecx, 0x1e
shl ecx, 0x1e
mov edi, ecx
xor ecx, ecx
or ebx, ecx
shr edx, 2
or edi, edx
mov edx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xffffff60
mov dword [ecx + eax + 0x50], edi
mov dword [ecx + eax + 0x54], ebx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
shld ebx, ecx, 0x1e
shl ecx, 0x1e
shr edx, 2
or edx, ecx
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xffffff50
mov dword [ecx + eax + 0x58], edx
mov dword [ecx + eax + 0x5c], edi
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
shrd ecx, ebx, 4
xor edi, edi
or edi, ecx
shl edx, 0x1c
shr ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, esi
and ecx, 0xfffffec0
mov dword [ecx + eax + 0xa0], edi
mov dword [ecx + eax + 0xa4], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
shrd ecx, ebx, 4
xor edi, edi
or edi, ecx
shl edx, 0x1c
shr ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x50]
mov ecx, esi
and ecx, 0xfffffeb0
mov dword [ecx + eax + 0xa8], edi
mov dword [ecx + eax + 0xac], edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
shrd ebx, ecx, 0x11
shr ecx, 0x11
shl edx, 0xf
or edx, ecx
xor edi, edi
or edi, ebx
mov ecx, esi
and ecx, 0xfffffe00
mov dword [ecx + eax + 0x100], edi
mov edi, dword [esp + 0x58]
mov dword [ecx + eax + 0x104], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
xor ebx, ebx
shl ecx, 0xf
shrd edi, edx, 0x11
shr edx, 0x11
or ebx, edi
or ecx, edx
and esi, 0xfffffdf0
mov dword [esi + eax + 0x108], ebx
pop edi
mov dword [esi + eax + 0x10c], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc