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

Disassembly:
sub esp, 0x40
cmp dword [esp + 0x48], 0x18
push ebx
sbb eax, eax
mov ebx, ecx
push ebp
add eax, 4
push esi
push edi
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 0x18]
lea edi, [eax*8]
mov edx, dword [ebx + 0x1c]
lea ebp, [edi*2 + 4]
mov dword [esp + 0x40], edi
cmp ecx, ebp
je 0x4468f6
test edx, edx
je 0x4468e9
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
push edx
call fcn.0042ccf0
mov edi, dword [esp + 0x44]
add esp, 4
push 0
push ebp
lea ecx, [ebx + 0x10]
call fcn.00428a30
mov edx, eax
mov dword [ebx + 0x18], ebp
lea ecx, [ebx + 4]
mov dword [ebx + 0x1c], edx
xor ebp, ebp
mov dword [ebx + 0x14], 0x3fffffff
mov eax, dword [ecx]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
mov eax, dword [eax + 0x20]
call eax
test al, al
jne 0x44692d
or ebp, 0xffffffff
inc edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
jmp 0x44692f
xor edi, edi
mov eax, dword [esp + 0x54]
xor ecx, ecx
test eax, eax
je 0x44693b
mov ecx, dword [eax]
bswap ecx
xor edx, edx
mov dword [esp + 0x34], ecx
add eax, 4
je 0x44694a
mov edx, dword [eax]
mov ebx, 0
bswap edx
mov dword [esp + 0x28], edx
add eax, 4
je 0x44695c
mov ebx, dword [eax]
lea esi, [eax + 4]
xor eax, eax
bswap ebx
mov dword [esp + 0x2c], ebx
test esi, esi
je 0x44696d
mov eax, dword [esi]
mov ebx, dword [esp + 0x18]
xor esi, esi
bswap eax
or esi, eax
mov dword [esp + 0x30], eax
lea ebx, [ebx + edi*8]
mov dword [esp + 0x20], ecx
mov eax, ebp
mov dword [esp + 0x1c], esi
and eax, 0xfffffff0
xor edi, edi
add eax, ebx
or edi, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [ebx], esi
mov dword [ebx + 4], edx
xor edx, edx
cmp dword [esp + 0x58], 0x10
jne 0x44701e
mov eax, dword [esp + 0x1c]
mov esi, ecx
mov ecx, dword [esp + 0x24]
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
mov ecx, dword [esp + 0x20]
mov eax, ebp
and eax, 0xffffffc0
mov dword [eax + ebx + 0x20], esi
mov dword [eax + ebx + 0x24], edx
xor edx, edx
mov esi, dword [esp + 0x24]
mov eax, edi
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
mov ecx, dword [esp + 0x20]
mov eax, ebp
and eax, 0xffffffb0
mov dword [eax + ebx + 0x28], esi
mov dword [eax + ebx + 0x2c], edx
xor edx, edx
mov esi, dword [esp + 0x1c]
mov eax, edi
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xffffff60
mov dword [eax + ebx + 0x50], edx
xor edx, edx
mov dword [eax + ebx + 0x54], esi
mov esi, edi
mov eax, dword [esp + 0x1c]
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x20]
and eax, 0xffffff50
mov dword [eax + ebx + 0x58], edx
xor edx, edx
mov dword [eax + ebx + 0x5c], esi
mov eax, edi
mov esi, dword [esp + 0x1c]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xffffff40
mov dword [eax + ebx + 0x60], edx
xor edx, edx
mov dword [eax + ebx + 0x64], esi
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
or esi, eax
mov eax, ebp
and eax, 0xfffffef0
mov dword [eax + ebx + 0x88], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ebx + 0x8c], edx
mov eax, edi
shr esi, 0x13
xor edx, edx
mov ecx, dword [esp + 0x20]
shld ecx, eax, 0xd
xor dword [esp + 0x28], 0x3bcc908b
shl eax, 0xd
or edx, ecx
or esi, eax
mov ecx, dword [esp + 0x1c]
mov eax, ebp
and eax, 0xffffff00
mov dword [eax + ebx + 0x80], esi
mov dword [eax + ebx + 0x84], edx
mov esi, dword [esp + 0x24]
mov edx, esi
mov eax, dword [esp + 0x20]
shr eax, 2
shld edx, ecx, 0x1e
shr esi, 2
shl ecx, 0x1e
or ecx, eax
mov eax, ebp
and eax, 0xfffffed0
mov dword [eax + ebx + 0x98], ecx
mov dword [eax + ebx + 0x9c], edx
xor edx, edx
mov ecx, dword [esp + 0x20]
mov eax, edi
shld ecx, eax, 0x1e
shl eax, 0x1e
or edx, ecx
or esi, eax
xor ecx, ecx
mov eax, ebp
and eax, 0xfffffee0
mov dword [eax + ebx + 0x90], esi
mov dword [eax + ebx + 0x94], edx
mov eax, edi
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
shrd eax, esi, 0x11
shl edx, 0xf
or ecx, eax
shr esi, 0x11
or edx, esi
shl edi, 0xf
mov eax, ebp
and eax, 0xfffffe90
mov dword [eax + ebx + 0xb8], ecx
xor ecx, ecx
mov dword [eax + ebx + 0xbc], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
shrd edx, eax, 0x11
shr eax, 0x11
or ecx, edx
mov edx, dword [esp + 0x34]
or edi, eax
mov eax, ebp
xor edx, 0xa09e667f
and eax, 0xfffffea0
mov dword [eax + ebx + 0xb0], ecx
mov dword [eax + ebx + 0xb4], edi
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ebx, dword [ecx*4 + 0x482090]
xor ebx, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor ebx, dword [eax*4 + 0x481c90]
movzx eax, dl
mov edx, dword [esp + 0x28]
xor ebx, dword [eax*4 + 0x482890]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, dl
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, ebx
ror ebx, 8
mov edi, ecx
xor ebx, ecx
xor edi, dword [esp + 0x2c]
xor ebx, dword [esp + 0x30]
mov edx, edi
xor edx, 0xb67ae858
mov dword [esp + 0x54], ebx
mov eax, edx
xor ebx, 0x4caa73b2
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x482090]
xor esi, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x481c90]
movzx eax, dl
xor esi, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ebp, dword [ecx*4 + 0x482490]
xor ebp, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ebp, dword [eax*4 + 0x482090]
movzx eax, bl
xor ebp, dword [eax*4 + 0x481c90]
xor ebp, esi
ror esi, 8
mov edx, ebp
xor esi, ebp
xor edx, 0xc6ef372f
mov dword [esp + 0x40], esi
mov eax, edx
mov ebx, esi
shr eax, 0x10
xor ebx, 0xe94f82be
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x482090]
xor esi, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x481c90]
movzx eax, dl
xor esi, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, esi
mov eax, ecx
xor eax, edi
xor eax, dword [esp + 0x2c]
mov edx, eax
mov dword [esp + 0x58], eax
xor edx, 0x54ff53a5
ror esi, 8
xor esi, ecx
mov eax, edx
xor esi, dword [esp + 0x54]
shr eax, 0x10
xor esi, dword [esp + 0x30]
movzx ecx, al
mov ebx, esi
mov eax, edx
xor ebx, 0xf1d36f1c
shr eax, 8
movzx eax, al
mov edi, dword [ecx*4 + 0x482090]
xor edi, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor edi, dword [eax*4 + 0x481c90]
movzx eax, dl
xor edi, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ebx, ebx
or ebx, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
xor ecx, dword [eax*4 + 0x481c90]
mov eax, esi
xor ecx, edi
and eax, 0xffffffd0
ror edi, 8
and esi, 0xffffffe0
xor edi, ecx
xor ecx, ebp
xor edi, dword [esp + 0x40]
mov dword [esp + 0x54], edi
xor edi, edi
mov ebp, dword [esp + 0x54]
or edi, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x54], ebp
lea edx, [edi + ecx*8]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov dword [eax + edx + 0x18], ebp
mov ebp, dword [esp + 0x14]
mov dword [eax + edx + 0x1c], edi
mov eax, ebx
mov dword [esi + edx + 0x10], ebx
mov ebx, dword [esp + 0x18]
mov dword [esi + edx + 0x14], ecx
mov esi, edi
shld ecx, eax, 0xf
shr esi, 0x11
xor edx, edx
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [ebx + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xffffffa0
mov dword [eax + ecx + 0x30], esi
mov esi, dword [esp + 0x58]
mov dword [eax + ecx + 0x34], edx
shr esi, 0x11
mov eax, dword [esp + 0x54]
mov ecx, edi
shld ecx, eax, 0xf
xor edx, edx
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [ebx + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xffffff90
mov dword [eax + ecx + 0x38], esi
mov ecx, ebx
mov ebx, dword [esp + 0x58]
shr ebx, 2
lea esi, [ecx + ebp*8]
mov ebp, dword [esp + 0x24]
mov dword [eax + esi + 0x3c], edx
mov eax, edi
mov ecx, dword [esp + 0x58]
xor edx, edx
shld ecx, ebp, 0x1e
shr eax, 2
shl ebp, 0x1e
or ebp, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x10]
and eax, 0xffffff80
mov dword [esp + 0x40], ebp
mov dword [eax + esi + 0x40], ebp
mov dword [eax + esi + 0x44], ecx
mov ecx, edi
mov eax, dword [esp + 0x54]
xor edi, edi
shld ecx, eax, 0x1e
mov ebp, dword [esp + 0x14]
shl eax, 0x1e
or edi, ecx
mov ecx, dword [esp + 0x58]
or ebx, eax
mov eax, dword [esp + 0x10]
and eax, 0xffffff70
mov dword [esp + 0x38], ebx
mov dword [eax + esi + 0x48], ebx
mov ebx, dword [esp + 0x18]
mov dword [eax + esi + 0x4c], edi
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xffffff30
lea ecx, [ebx + ebp*8]
mov dword [eax + ecx + 0x68], edx
xor edx, edx
mov dword [eax + ecx + 0x6c], esi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xffffff20
lea ecx, [ebx + ebp*8]
mov dword [eax + ecx + 0x70], edx
xor edx, edx
mov dword [eax + ecx + 0x74], esi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
shrd eax, ecx, 4
shl esi, 0x1c
shr ecx, 4
or edx, eax
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xffffff10
lea ecx, [ebx + ebp*8]
mov dword [eax + ecx + 0x78], edx
mov ecx, ebp
mov ebp, dword [esp + 0x40]
lea edx, [ecx*8]
mov ecx, dword [esp + 0x3c]
add edx, ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + edx + 0x7c], esi
mov esi, dword [esp + 0x10]
mov eax, esi
and eax, 0xfffffeb0
and esi, 0xfffffec0
mov dword [eax + edx + 0xa8], ebp
mov ebp, dword [esp + 0x14]
mov dword [eax + edx + 0xac], ecx
xor ecx, ecx
mov dword [esi + edx + 0xa0], ebx
mov ebx, dword [esp + 0x30]
mov dword [esi + edx + 0xa4], edi
mov esi, dword [esp + 0x54]
mov eax, esi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
shrd eax, ebx, 0x11
shl edx, 0xf
or ecx, eax
shr ebx, 0x11
mov eax, dword [esp + 0x10]
or edx, ebx
lea ebx, [edi + ebp*8]
shl esi, 0xf
mov ebp, dword [esp + 0x24]
and eax, 0xfffffe80
mov edi, dword [esp + 0x10]
mov dword [eax + ebx + 0xc0], ecx
mov ecx, dword [esp + 0x58]
shrd ebp, ecx, 0x11
mov dword [eax + ebx + 0xc4], edx
xor eax, eax
shr ecx, 0x11
or eax, ebp
or esi, ecx
and edi, 0xfffffe70
mov dword [edi + ebx + 0xc8], eax
mov dword [edi + ebx + 0xcc], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc
shl esi, 0xd
mov eax, edi
shrd eax, ecx, 0x13
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
and eax, 0xffffff40
mov ecx, dword [esp + 0x24]
mov dword [eax + ebx + 0x60], edx
xor edx, edx
mov dword [eax + ebx + 0x64], esi
mov esi, edi
mov eax, dword [esp + 0x1c]
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
shr ecx, 0x13
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x20]
and eax, 0xffffff30
mov dword [eax + ebx + 0x68], edx
xor edx, edx
mov dword [eax + ebx + 0x6c], esi
mov eax, edi
mov esi, dword [esp + 0x1c]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xffffff00
mov dword [eax + ebx + 0x80], edx
xor edx, edx
mov dword [eax + ebx + 0x84], esi
mov esi, edi
mov eax, dword [esp + 0x1c]
shrd eax, ecx, 4
shl esi, 0x1c
or edx, eax
shr ecx, 4
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
and eax, 0xfffffef0
mov dword [eax + ebx + 0x88], edx
xor edx, edx
mov dword [eax + ebx + 0x8c], esi
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
mov ecx, dword [esp + 0x20]
or esi, eax
mov eax, ebp
and eax, 0xfffffe90
mov dword [eax + ebx + 0xb8], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ebx + 0xbc], edx
xor edx, edx
mov eax, edi
shr esi, 0x13
shld ecx, eax, 0xd
shl eax, 0xd
or edx, ecx
or esi, eax
xor ecx, ecx
mov eax, ebp
and eax, 0xfffffea0
mov dword [eax + ebx + 0xb0], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ebx + 0xb4], edx
mov eax, edi
mov edx, dword [esp + 0x1c]
shl edx, 0xf
shrd eax, esi, 0x11
or ecx, eax
shr esi, 0x11
mov eax, ebp
shl edi, 0xf
and eax, 0xfffffe10
or edx, esi
mov dword [eax + ebx + 0xf8], ecx
xor ecx, ecx
mov dword [eax + ebx + 0xfc], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
shrd edx, eax, 0x11
shr eax, 0x11
or ecx, edx
or edi, eax
mov eax, ebp
and eax, 0xfffffe20
xor ebp, ebp
mov dword [eax + ebx + 0xf0], ecx
mov dword [eax + ebx + 0xf4], edi
mov eax, dword [esp + 0x54]
lea ecx, [eax + 0x10]
test ecx, ecx
je 0x44718f
mov ebp, dword [ecx]
bswap ebp
xor ebx, ebx
mov dword [esp + 0x3c], ebp
add ecx, 4
je 0x44719e
mov ebx, dword [ecx]
cmp dword [esp + 0x58], 0x18
bswap ebx
mov dword [esp + 0x40], ebx
jne 0x4471b9
mov edx, ebp
mov ecx, ebx
not edx
not ecx
mov dword [esp + 0x1c], edx
jmp 0x4471d3
xor edx, edx
add eax, 0x18
je 0x4471c2
mov edx, dword [eax]
bswap edx
xor ecx, ecx
mov dword [esp + 0x1c], edx
add eax, 4
je 0x4471d1
mov ecx, dword [eax]
bswap ecx
xor eax, eax
mov dword [esp + 0x38], ecx
or eax, ebx
mov edi, ebp
mov dword [esp + 0x54], eax
xor ebx, ebx
or ebx, ecx
mov dword [esp + 0x58], edi
mov ebp, edx
mov dword [esp + 0x24], ebx
mov eax, ebx
mov dword [esp + 0x20], ebp
mov ebx, dword [esp + 0x14]
mov esi, edi
mov edi, dword [esp + 0x18]
mov ecx, ebp
shld ecx, eax, 0xf
shr esi, 0x11
xor edx, edx
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [edi + ebx*8]
mov eax, dword [esp + 0x10]
and eax, 0xffffffc0
mov dword [eax + ecx + 0x20], esi
mov esi, ebp
mov dword [eax + ecx + 0x24], edx
xor edx, edx
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [ebx*8]
mov eax, dword [esp + 0x10]
add ecx, edi
mov ebx, dword [esp + 0x24]
and eax, 0xffffffb0
mov edi, dword [esp + 0x20]
shld ebp, ebx, 0x1e
shr edi, 2
mov dword [eax + ecx + 0x28], esi
xor esi, esi
mov dword [eax + ecx + 0x2c], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
shr eax, 2
shl ebx, 0x1e
or ebx, eax
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x10]
and eax, 0xffffff80
mov dword [esp + 0x44], ebx
mov dword [eax + ecx + 0x40], ebx
mov ebx, dword [esp + 0x58]
mov dword [eax + ecx + 0x44], ebp
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
shld ecx, eax, 0x1e
shl eax, 0x1e
or esi, ecx
or edi, eax
lea ecx, [edx*8]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
and eax, 0xffffff70
shl edx, 0x1c
mov dword [esp + 0x4c], edi
mov dword [eax + ecx + 0x48], edi
mov dword [eax + ecx + 0x4c], esi
xor ecx, ecx
mov eax, dword [esp + 0x54]
shrd eax, ebx, 4
shr ebx, 4
or ecx, eax
mov dword [esp + 0x58], ebx
or edx, ebx
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0xfffffee0
lea ebx, [edi + ebp*8]
mov dword [eax + ebx + 0x90], ecx
xor ecx, ecx
mov dword [eax + ebx + 0x94], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
shrd eax, edx, 4
mov ebx, dword [esp + 0x54]
or ecx, eax
shr edx, 4
mov eax, dword [esp + 0x10]
and eax, 0xfffffed0
shl ebx, 0x1c
or ebx, edx
lea edx, [edi + ebp*8]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [eax + edx + 0x98], ecx
mov dword [eax + edx + 0x9c], ebx
mov ecx, dword [esp + 0x10]
mov eax, ecx
mov ebx, dword [esp + 0x44]
and eax, 0xfffffe50
and ecx, 0xfffffe60
mov dword [eax + edx + 0xd8], ebx
mov dword [eax + edx + 0xdc], ebp
mov dword [ecx + edx + 0xd0], edi
mov dword [ecx + edx + 0xd4], esi
mov esi, dword [esp + 0x3c]
xor esi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov edx, esi
xor edx, 0xa09e667f
xor edi, dword [esp + 0x28]
mov eax, edx
mov ebx, edi
shr eax, 0x10
xor ebx, 0x3bcc908b
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482090]
xor ecx, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x481c90]
movzx eax, dl
mov edx, ecx
mov dword [esp + 0x54], ecx
xor edx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, edx
ror edx, 8
xor edx, ecx
mov ebp, ecx
xor edx, dword [esp + 0x38]
xor edx, dword [esp + 0x30]
xor ebp, dword [esp + 0x1c]
xor ebp, dword [esp + 0x2c]
mov dword [esp + 0x54], edx
mov edx, ebp
mov ebx, dword [esp + 0x54]
xor edx, 0xb67ae858
xor ebx, 0x4caa73b2
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482090]
xor ecx, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x481c90]
movzx eax, dl
mov edx, ecx
mov dword [esp + 0x24], ecx
xor edx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, edx
ror edx, 8
xor edx, ecx
mov eax, ecx
xor eax, esi
xor edx, edi
xor eax, dword [esp + 0x34]
xor edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov edx, eax
mov edi, dword [esp + 0x24]
xor edx, 0xc6ef372f
mov eax, edx
mov ebx, edi
shr eax, 0x10
xor ebx, 0xe94f82be
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x482090]
xor esi, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x481c90]
movzx eax, dl
xor esi, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, esi
ror esi, 8
mov eax, ecx
xor esi, ecx
xor esi, dword [esp + 0x54]
xor eax, ebp
xor eax, dword [esp + 0x2c]
xor esi, dword [esp + 0x30]
mov edx, eax
mov dword [esp + 0x58], eax
xor edx, 0x54ff53a5
mov dword [esp + 0x28], esi
mov eax, edx
mov ebx, esi
shr eax, 0x10
xor ebx, 0xf1d36f1c
movzx ecx, al
xor ebp, ebp
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x482090]
xor esi, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x481c90]
movzx eax, dl
xor edx, edx
xor esi, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
mov ebx, dword [esp + 0x58]
xor ecx, dword [eax*4 + 0x481c90]
mov eax, dword [esp + 0x20]
xor ecx, esi
xor eax, ecx
ror esi, 8
xor esi, ecx
mov dword [esp + 0x54], eax
xor edi, esi
mov dword [esp + 0x20], eax
mov esi, eax
mov dword [esp + 0x24], edi
or ebp, edi
shr esi, 0x11
xor edi, edi
mov dword [esp + 0x2c], ebp
or edi, dword [esp + 0x28]
mov ecx, ebx
mov ebp, dword [esp + 0x14]
mov eax, edi
shld ecx, eax, 0xf
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
or edx, ecx
shl eax, 0xf
or esi, eax
mov eax, dword [esp + 0x10]
and eax, 0xffffffa0
lea ecx, [edi + ebp*8]
mov dword [eax + ecx + 0x30], esi
mov esi, ebx
mov dword [eax + ecx + 0x34], edx
xor edx, edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
shld ecx, eax, 0xf
shr esi, 0x11
shl eax, 0xf
or edx, ecx
or esi, eax
lea ecx, [edi + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xffffff90
mov dword [eax + ecx + 0x38], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx + 0x3c], edx
xor edx, edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
shrd eax, ecx, 0x13
shl esi, 0xd
shr ecx, 0x13
or edx, eax
or esi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [edi + ebp*8]
and eax, 0xffffff20
mov dword [eax + ecx + 0x70], edx
xor edx, edx
mov dword [eax + ecx + 0x74], esi
mov ecx, ebx
mov eax, dword [esp + 0x30]
shrd eax, ecx, 0x13
mov esi, dword [esp + 0x2c]
or edx, eax
shr ecx, 0x13
mov eax, dword [esp + 0x10]
and eax, 0xffffff10
shl esi, 0xd
or esi, ecx
lea ecx, [edi + ebp*8]
mov dword [eax + ecx + 0x78], edx
xor edx, edx
mov dword [eax + ecx + 0x7c], esi
mov ecx, ebx
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
or esi, eax
lea ecx, [edi + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xfffffe70
mov dword [eax + ecx + 0xc8], esi
mov esi, ebx
mov dword [eax + ecx + 0xcc], edx
xor edx, edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
shld ecx, eax, 0xd
shr esi, 0x13
shl eax, 0xd
or edx, ecx
or esi, eax
lea ecx, [edi + ebp*8]
mov eax, dword [esp + 0x10]
and eax, 0xfffffe80
mov dword [eax + ecx + 0xc0], esi
mov ecx, ebp
mov ebp, dword [esp + 0x2c]
lea esi, [ecx*8]
mov ecx, ebx
add esi, edi
shr ebx, 2
mov edi, dword [esp + 0x30]
shld ecx, edi, 0x1e
mov dword [eax + esi + 0xc4], edx
mov edx, dword [esp + 0x54]
mov eax, edx
shr eax, 2
shl edi, 0x1e
or edi, eax
mov eax, dword [esp + 0x10]
and eax, 0xfffffe30
shld edx, ebp, 0x1e
shl ebp, 0x1e
mov dword [eax + esi + 0xe8], edi
or ebx, ebp
mov edi, dword [esp + 0x24]
mov dword [eax + esi + 0xec], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
or ecx, edx
and eax, 0xfffffe40
mov dword [eax + esi + 0xe0], ebx
mov dword [eax + esi + 0xe4], ecx
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x3c]
xor edi, dword [esp + 0x40]
mov edx, eax
mov dword [esp + 0x20], eax
xor edx, 0x10e527fa
mov ebx, edi
mov eax, edx
xor ebx, 0xde682d1d
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x482090]
xor esi, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor esi, dword [eax*4 + 0x481c90]
movzx eax, dl
xor esi, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, esi
ror esi, 8
mov eax, ecx
xor esi, ecx
xor eax, dword [esp + 0x1c]
xor dword [esp + 0x58], eax
xor esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
xor eax, esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x28], eax
mov ebx, eax
mov edx, esi
xor ebx, 0xb3e6c1fd
xor edx, 0xb05688c2
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ebp, dword [ecx*4 + 0x482090]
xor ebp, dword [eax*4 + 0x482490]
mov eax, edx
shr eax, 0x18
xor ebp, dword [eax*4 + 0x481c90]
movzx eax, dl
xor ebp, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x482490]
xor ecx, dword [eax*4 + 0x482890]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x482090]
movzx eax, bl
xor ebx, ebx
xor ecx, dword [eax*4 + 0x481c90]
xor ecx, ebp
ror ebp, 8
xor ebp, ecx
xor ecx, dword [esp + 0x20]
xor ebp, edi
xor edi, edi
or edi, ecx
mov dword [esp + 0x30], ebp
or ebx, dword [esp + 0x28]
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x10]
mov eax, edx
mov ebx, dword [esp + 0x18]
and eax, 0xffffffd0
mov dword [esp + 0x58], esi
and edx, 0xffffffe0
mov esi, dword [esp + 0x14]
lea ecx, [ebx + esi*8]
mov ebx, dword [esp + 0x54]
mov dword [eax + ecx + 0x18], ebp
mov dword [eax + ecx + 0x1c], edi
mov eax, edi
mov dword [edx + ecx + 0x10], ebx
mov esi, dword [esp + 0x58]
mov dword [edx + ecx + 0x14], esi
mov ecx, ebx
mov ebx, dword [esp + 0x14]
mov edx, esi
shld edx, ecx, 0x1e
shr eax, 2
shl ecx, 0x1e
or ecx, eax
lea esi, [ebx*8]
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0xffffff60
mov dword [eax + esi + 0x50], ecx
mov esi, ebx
mov ebx, dword [esp + 0x18]
lea ecx, [ebx + esi*8]
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx + 0x54], edx
xor edx, edx
mov esi, dword [esp + 0x58]
mov eax, ebp
shr esi, 2
mov ecx, edi
shld ecx, eax, 0x1e
or edx, ecx
shl eax, 0x1e
or esi, eax
lea ecx, [ebx*8]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0xffffff50
mov dword [eax + ecx + 0x58], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx + 0x5c], edx
xor edx, edx
mov eax, ebp
shl esi, 0x1c
mov ecx, edi
shrd eax, ecx, 4
shr ecx, 4
or edx, eax
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xfffffec0
lea ecx, [ebx*8]
add ecx, dword [esp + 0x18]
mov dword [eax + ecx + 0xa0], edx
xor edx, edx
mov dword [eax + ecx + 0xa4], esi
mov esi, ebp
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
shrd eax, ecx, 4
shl esi, 0x1c
shr ecx, 4
or edx, eax
mov eax, dword [esp + 0x10]
or esi, ecx
and eax, 0xfffffeb0
lea ecx, [ebx*8]
add ecx, dword [esp + 0x18]
mov dword [eax + ecx + 0xa8], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx + 0xac], esi
xor ecx, ecx
shl edx, 0xf
mov eax, ebp
shrd eax, edi, 0x11
shl ebp, 0xf
or ecx, eax
shr edi, 0x11
mov eax, dword [esp + 0x10]
or edx, edi
mov edi, dword [esp + 0x18]
and eax, 0xfffffe00
lea esi, [edi + ebx*8]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x10]
mov dword [eax + esi + 0x100], ecx
mov ecx, dword [esp + 0x58]
shrd ebx, ecx, 0x11
mov dword [eax + esi + 0x104], edx
xor eax, eax
shr ecx, 0x11
or eax, ebx
or ebp, ecx
and edi, 0xfffffdf0
mov dword [edi + esi + 0x108], eax
mov dword [edi + esi + 0x10c], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0xc