Function at 0x401e40
Capabilities:
Encrypt data using hc-128

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x2c
mov ecx, 8
push ebx
push ebp
push esi
push edi
lea esi, [eax + 8]
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov esi, dword [esp + 0x2c]
test ecx, ecx
je 0x401eca
mov edi, dword [eax + 0x60]
mov esi, dword [eax + 0x2c]
mov ebx, edi
mov ebp, edi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], esi
shr ebp, 0x13
shl edi, 0xd
or ebp, edi
mov edi, dword [esp + 0x18]
xor ebx, ebp
mov ebp, esi
shr edi, 0xa
xor ebx, edi
mov edi, esi
shr edi, 0x12
shl ebp, 0xe
or edi, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x40]
xor edi, ebp
shr esi, 3
xor edi, esi
mov esi, dword [eax + 0x28]
add ebx, edi
mov edi, dword [eax + 0x4c]
add ebx, edi
add esi, ebx
mov dword [eax + 0x28], esi
mov esi, dword [esp + 0x2c]
mov ebx, esi
mov edi, esi
shl ebx, 0x15
shr edi, 0xb
or ebx, edi
mov edi, esi
mov ebp, esi
shl edi, 0x1a
shr ebp, 6
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shr edi, 0x19
shl ebp, 7
or edi, ebp
mov ebp, dword [esp + 0x34]
xor ebx, edi
mov edi, esi
not edi
and edi, ebp
mov ebp, dword [esp + 0x30]
and ebp, esi
mov esi, dword [eax + 0x28]
xor edi, ebp
mov ebp, edx
add ebx, edi
mov edi, dword [ecx*4 + 0x43faa8]
add ebx, edi
mov edi, dword [esp + 0x38]
add ebx, esi
mov esi, dword [esp + 0x28]
add edi, ebx
mov ebx, edx
mov dword [esp + 0x38], edi
add esi, edi
mov edi, edx
mov dword [esp + 0x28], esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, edx
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, edx
xor ebx, edi
mov edi, edx
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x20]
mov ebp, edi
and edi, edx
xor ebp, edx
and ebp, dword [esp + 0x24]
xor ebp, edi
mov edi, dword [esp + 0x38]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x38], ebp
je 0x401fd3
mov edi, dword [eax + 0x64]
mov esi, dword [eax + 0x30]
mov ebx, edi
mov ebp, edi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], esi
shr ebp, 0x13
shl edi, 0xd
or ebp, edi
mov edi, dword [esp + 0x40]
xor ebx, ebp
mov ebp, esi
shr edi, 0xa
xor ebx, edi
mov edi, esi
shr edi, 0x12
shl ebp, 0xe
or edi, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x14]
xor edi, ebp
shr esi, 3
xor edi, esi
mov esi, dword [eax + 0x2c]
add ebx, edi
mov edi, dword [eax + 0x50]
add ebx, edi
add esi, ebx
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x28]
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x30]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x2c]
and esi, ebp
mov ebp, dword [eax + 0x2c]
xor ebx, esi
mov esi, dword [ecx*4 + 0x43faac]
add edi, ebx
add edi, esi
mov esi, dword [esp + 0x34]
add edi, ebp
mov ebp, dword [esp + 0x24]
add esi, edi
mov dword [esp + 0x34], esi
add ebp, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], ebp
mov edi, esi
mov ebx, esi
shl edi, 0x13
shr ebx, 0xd
or edi, ebx
mov ebx, esi
mov ebp, esi
shr ebx, 0x16
shl ebp, 0xa
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shl ebx, 0x1e
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x20]
xor edi, ebx
mov ebx, edx
xor ebx, esi
and ebx, ebp
mov ebp, edx
and ebp, esi
xor ebx, ebp
mov ebp, dword [esp + 0x34]
add ebx, ebp
add ebx, edi
test ecx, ecx
mov dword [esp + 0x34], ebx
je 0x4020da
mov edi, dword [eax + 0x28]
mov esi, dword [eax + 0x34]
mov dword [esp + 0x40], edi
mov edi, esi
mov ebx, esi
mov ebp, esi
shr edi, 0x12
shl ebx, 0xe
or edi, ebx
mov ebx, esi
shl ebx, 0x19
shr ebp, 7
or ebx, ebp
xor edi, ebx
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, esi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
shr esi, 0xa
xor ebx, esi
mov esi, dword [eax + 0x30]
add edi, ebx
mov ebx, dword [eax + 0x54]
add edi, ebx
add esi, edi
mov dword [eax + 0x30], esi
mov esi, dword [esp + 0x24]
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x2c]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x28]
and esi, ebp
xor ebx, esi
mov esi, dword [eax + 0x30]
add edi, ebx
mov ebx, dword [ecx*4 + 0x43fab0]
add edi, ebx
mov ebx, dword [esp + 0x20]
add edi, esi
mov esi, dword [esp + 0x30]
add esi, edi
mov dword [esp + 0x30], esi
add ebx, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
mov ebx, esi
mov edi, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
mov ebp, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x38]
mov ebp, edi
and edi, esi
xor ebp, esi
and ebp, edx
xor ebp, edi
mov edi, dword [esp + 0x30]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x30], ebp
je 0x4021e3
mov edi, dword [eax + 0x2c]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x40], edi
mov edi, esi
mov ebx, esi
mov ebp, esi
shr edi, 0x12
shl ebx, 0xe
or edi, ebx
mov ebx, esi
shl ebx, 0x19
shr ebp, 7
or ebx, ebp
xor edi, ebx
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, esi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
shr esi, 0xa
xor ebx, esi
mov esi, dword [eax + 0x34]
add edi, ebx
mov ebx, dword [eax + 0x58]
add edi, ebx
add esi, edi
mov dword [eax + 0x34], esi
mov esi, dword [esp + 0x20]
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x28]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x24]
and ebp, esi
mov esi, dword [eax + 0x34]
xor ebx, ebp
add edi, ebx
mov ebx, dword [ecx*4 + 0x43fab4]
add edi, ebx
add edi, esi
mov esi, dword [esp + 0x2c]
add esi, edi
mov dword [esp + 0x2c], esi
add edx, esi
mov esi, dword [esp + 0x30]
mov ebx, esi
mov edi, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
mov ebp, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x34]
mov ebp, edi
and edi, esi
xor ebp, esi
and ebp, dword [esp + 0x38]
xor ebp, edi
mov edi, dword [esp + 0x2c]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x2c], ebp
je 0x4022ec
mov edi, dword [eax + 0x3c]
mov esi, dword [eax + 0x30]
mov ebx, edi
mov ebp, edi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], esi
shl ebp, 0x19
shr edi, 7
or ebp, edi
mov edi, dword [esp + 0x40]
xor ebx, ebp
mov ebp, esi
shr edi, 3
xor ebx, edi
mov edi, esi
shr edi, 0x11
shl ebp, 0xf
or edi, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x14]
xor edi, ebp
shr esi, 0xa
xor edi, esi
mov esi, dword [eax + 0x38]
add ebx, edi
mov edi, dword [eax + 0x5c]
add ebx, edi
add esi, ebx
mov dword [eax + 0x38], esi
mov esi, dword [esp + 0x30]
mov edi, edx
mov ebx, edx
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, edx
mov ebp, edx
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, edx
xor edi, ebx
mov ebx, edx
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x24]
xor edi, ebx
mov ebx, edx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x20]
and ebp, edx
xor ebx, ebp
mov ebp, dword [ecx*4 + 0x43fab8]
add edi, ebx
mov ebx, dword [eax + 0x38]
add edi, ebp
mov ebp, esi
add edi, ebx
mov ebx, dword [esp + 0x28]
add ebx, edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x28], ebx
add edi, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x38], edi
xor ebp, ebx
and esi, ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x10], esi
mov ebp, ebx
mov esi, ebx
shl ebp, 0x13
shr esi, 0xd
or ebp, esi
mov esi, ebx
shr esi, 0x16
shl ebx, 0xa
or esi, ebx
xor ebp, esi
mov esi, dword [esp + 0x2c]
mov ebx, esi
shl ebx, 0x1e
shr esi, 2
or ebx, esi
mov esi, dword [esp + 0x40]
xor ebp, ebx
mov ebx, dword [esp + 0x34]
and esi, ebx
mov ebx, dword [esp + 0x10]
xor esi, ebx
mov ebx, dword [esp + 0x28]
add esi, ebx
add esi, ebp
test ecx, ecx
mov dword [esp + 0x28], esi
je 0x402407
mov edi, dword [eax + 0x34]
mov esi, dword [eax + 0x40]
mov ebx, edi
mov ebp, edi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
shr ebp, 0x13
shl edi, 0xd
or ebp, edi
mov edi, dword [esp + 0x18]
xor ebx, ebp
mov ebp, esi
shr edi, 0xa
xor ebx, edi
mov edi, esi
shr edi, 0x12
shl ebp, 0xe
or edi, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x14]
xor edi, ebp
shr esi, 3
xor edi, esi
mov esi, dword [eax + 0x3c]
add ebx, edi
mov edi, dword [eax + 0x60]
add ebx, edi
mov edi, dword [esp + 0x38]
add esi, ebx
mov dword [eax + 0x3c], esi
mov ebx, edi
mov esi, edi
shl ebx, 0x15
shr esi, 0xb
or ebx, esi
mov esi, edi
mov ebp, edi
shl esi, 0x1a
shr ebp, 6
or esi, ebp
mov ebp, edi
xor ebx, esi
mov esi, edi
shr esi, 0x19
shl ebp, 7
or esi, ebp
mov ebp, dword [esp + 0x20]
xor ebx, esi
mov esi, edi
not esi
and esi, ebp
mov ebp, edx
and ebp, edi
xor esi, ebp
mov ebp, dword [ecx*4 + 0x43fabc]
add ebx, esi
mov esi, dword [eax + 0x3c]
add ebx, ebp
add ebx, esi
mov esi, dword [esp + 0x24]
add esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x24], esi
add ebx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x13
shr ebp, 0xd
or ebx, ebp
mov ebp, esi
shr ebp, 0x16
shl esi, 0xa
or ebp, esi
mov esi, dword [esp + 0x28]
xor ebx, ebp
mov ebp, esi
shl ebp, 0x1e
shr esi, 2
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
mov ebp, dword [esp + 0x28]
and esi, ebp
mov ebp, dword [esp + 0x10]
xor esi, ebp
mov ebp, dword [esp + 0x24]
add esi, ebp
add esi, ebx
test ecx, ecx
mov dword [esp + 0x24], esi
je 0x402512
mov edi, dword [eax + 0x38]
mov esi, dword [eax + 0x44]
mov ebx, edi
mov ebp, edi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], esi
shr ebp, 0x13
shl edi, 0xd
or ebp, edi
mov edi, dword [esp + 0x18]
xor ebx, ebp
mov ebp, esi
shr edi, 0xa
xor ebx, edi
mov edi, esi
shr edi, 0x12
shl ebp, 0xe
or edi, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x40]
xor edi, ebp
shr esi, 3
xor edi, esi
mov esi, dword [eax + 0x40]
add ebx, edi
mov edi, dword [eax + 0x64]
add ebx, edi
mov edi, dword [esp + 0x38]
add esi, ebx
mov dword [eax + 0x40], esi
mov esi, dword [esp + 0x34]
mov ebx, esi
mov ebp, esi
shl ebx, 0x15
shr ebp, 0xb
or ebx, ebp
mov ebp, esi
shl ebp, 0x1a
shr esi, 6
or ebp, esi
mov esi, dword [esp + 0x34]
xor ebx, ebp
mov ebp, esi
shr ebp, 0x19
shl esi, 7
or ebp, esi
mov esi, dword [esp + 0x34]
xor ebx, ebp
mov ebp, esi
not ebp
and ebp, edx
and edi, esi
mov esi, dword [eax + 0x40]
xor ebp, edi
mov edi, dword [ecx*4 + 0x43fac0]
add ebx, ebp
add ebx, edi
add ebx, esi
mov esi, dword [esp + 0x20]
add esi, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], esi
add ebx, esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov ebx, esi
mov edi, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
mov ebp, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x28]
mov ebp, edi
xor ebp, dword [esp + 0x2c]
and ebp, esi
mov esi, dword [esp + 0x2c]
and edi, esi
xor ebp, edi
mov edi, dword [esp + 0x20]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x20], ebp
je 0x40261d
mov edi, dword [eax + 0x3c]
mov esi, dword [eax + 0x48]
mov dword [esp + 0x40], edi
mov edi, esi
mov ebx, esi
mov ebp, esi
shr edi, 0x12
shl ebx, 0xe
or edi, ebx
mov ebx, esi
shl ebx, 0x19
shr ebp, 7
or ebx, ebp
xor edi, ebx
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, esi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
shr esi, 0xa
xor ebx, esi
mov esi, dword [eax + 0x44]
add edi, ebx
mov ebx, dword [eax + 0x28]
add edi, ebx
add esi, edi
mov dword [eax + 0x44], esi
mov esi, dword [esp + 0x30]
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x38]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x34]
and ebp, esi
mov esi, dword [eax + 0x44]
xor ebx, ebp
add edi, ebx
mov ebx, dword [ecx*4 + 0x43fac4]
add edi, ebx
mov ebx, dword [esp + 0x2c]
add edi, esi
mov esi, dword [esp + 0x20]
add edx, edi
mov edi, esi
add ebx, edx
mov ebp, esi
mov dword [esp + 0x2c], ebx
mov ebx, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, dword [esp + 0x28]
xor ebp, edi
and esi, edi
and ebp, dword [esp + 0x24]
xor ebp, esi
add ebp, edx
test ecx, ecx
lea edx, [ebx + ebp]
je 0x402719
mov esi, dword [eax + 0x4c]
mov dword [esp + 0x40], esi
mov esi, dword [eax + 0x40]
mov edi, esi
mov ebx, esi
shr edi, 0x11
shl ebx, 0xf
or edi, ebx
mov ebx, esi
mov ebp, esi
shr ebx, 0x13
shl ebp, 0xd
or ebx, ebp
xor edi, ebx
shr esi, 0xa
xor edi, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, esi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
shr esi, 3
xor ebx, esi
mov esi, dword [eax + 0x48]
add edi, ebx
mov ebx, dword [eax + 0x2c]
add edi, ebx
add esi, edi
mov dword [eax + 0x48], esi
mov esi, dword [esp + 0x2c]
mov ebx, esi
mov edi, esi
shl ebx, 0x15
shr edi, 0xb
or ebx, edi
mov edi, esi
mov ebp, esi
shl edi, 0x1a
shr ebp, 6
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shr edi, 0x19
shl ebp, 7
or edi, ebp
mov ebp, dword [esp + 0x34]
xor ebx, edi
mov edi, esi
not edi
and edi, ebp
mov ebp, dword [esp + 0x30]
and ebp, esi
xor edi, ebp
mov ebp, dword [ecx*4 + 0x43fac8]
add ebx, edi
mov edi, dword [eax + 0x48]
add ebx, ebp
mov ebp, edx
add ebx, edi
mov edi, dword [esp + 0x38]
add edi, ebx
mov ebx, dword [esp + 0x28]
add ebx, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x28], ebx
mov ebx, edx
mov edi, edx
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, edx
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, edx
xor ebx, edi
mov edi, edx
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x20]
mov ebp, edi
and edi, edx
xor ebp, edx
and ebp, dword [esp + 0x24]
xor ebp, edi
mov edi, dword [esp + 0x38]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x38], ebp
je 0x402826
mov edi, dword [eax + 0x50]
mov esi, dword [eax + 0x44]
mov ebx, edi
mov ebp, edi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x40], esi
shl ebp, 0x19
shr edi, 7
or ebp, edi
mov edi, dword [esp + 0x14]
xor ebx, ebp
mov ebp, esi
shr edi, 3
xor ebx, edi
mov edi, esi
shr edi, 0x11
shl ebp, 0xf
or edi, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x40]
xor edi, ebp
shr esi, 0xa
xor edi, esi
mov esi, dword [eax + 0x4c]
add ebx, edi
mov edi, dword [eax + 0x30]
add ebx, edi
add esi, ebx
mov dword [eax + 0x4c], esi
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ebx, edi
mov ebp, edi
shl ebx, 0x15
shr ebp, 0xb
or ebx, ebp
mov ebp, edi
shl ebp, 0x1a
shr edi, 6
or ebp, edi
mov edi, dword [esp + 0x28]
xor ebx, ebp
mov ebp, edi
shr ebp, 0x19
shl edi, 7
or ebp, edi
mov edi, dword [esp + 0x28]
xor ebx, ebp
mov ebp, edi
not ebp
and ebp, dword [esp + 0x30]
and edi, esi
mov esi, dword [ecx*4 + 0x43facc]
xor ebp, edi
add ebx, ebp
mov ebp, dword [eax + 0x4c]
add ebx, esi
mov esi, dword [esp + 0x34]
add ebx, ebp
mov ebp, dword [esp + 0x24]
add esi, ebx
mov dword [esp + 0x34], esi
add ebp, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], ebp
mov edi, esi
mov ebx, esi
shl edi, 0x13
shr ebx, 0xd
or edi, ebx
mov ebx, esi
mov ebp, esi
shr ebx, 0x16
shl ebp, 0xa
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shl ebx, 0x1e
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x20]
xor edi, ebx
mov ebx, edx
xor ebx, esi
and ebx, ebp
mov ebp, edx
and ebp, esi
xor ebx, ebp
mov ebp, dword [esp + 0x34]
add ebx, ebp
add ebx, edi
test ecx, ecx
mov dword [esp + 0x34], ebx
je 0x40292f
mov esi, dword [eax + 0x54]
mov dword [esp + 0x14], esi
mov esi, dword [eax + 0x48]
mov edi, esi
mov ebx, esi
shr edi, 0x11
shl ebx, 0xf
or edi, ebx
mov ebx, esi
mov ebp, esi
shr ebx, 0x13
shl ebp, 0xd
or ebx, ebp
xor edi, ebx
shr esi, 0xa
xor edi, esi
mov esi, dword [esp + 0x14]
mov ebx, esi
mov ebp, esi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x14]
xor ebx, ebp
shr esi, 3
xor ebx, esi
mov esi, dword [eax + 0x50]
add edi, ebx
mov ebx, dword [eax + 0x34]
add edi, ebx
add esi, edi
mov dword [eax + 0x50], esi
mov esi, dword [esp + 0x24]
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x2c]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x28]
and esi, ebp
xor ebx, esi
mov esi, dword [eax + 0x50]
add edi, ebx
mov ebx, dword [ecx*4 + 0x43fad0]
add edi, ebx
mov ebx, dword [esp + 0x20]
add edi, esi
mov esi, dword [esp + 0x30]
add esi, edi
mov dword [esp + 0x30], esi
add ebx, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
mov ebx, esi
mov edi, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
mov ebp, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x38]
mov ebp, edi
and edi, esi
xor ebp, esi
and ebp, edx
xor ebp, edi
mov edi, dword [esp + 0x30]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x30], ebp
je 0x402a38
mov edi, dword [eax + 0x4c]
mov esi, dword [eax + 0x58]
mov dword [esp + 0x40], edi
mov edi, esi
mov ebx, esi
mov ebp, esi
shr edi, 0x12
shl ebx, 0xe
or edi, ebx
mov ebx, esi
shl ebx, 0x19
shr ebp, 7
or ebx, ebp
xor edi, ebx
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, esi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
shr esi, 0xa
xor ebx, esi
mov esi, dword [eax + 0x54]
add edi, ebx
mov ebx, dword [eax + 0x38]
add edi, ebx
add esi, edi
mov dword [eax + 0x54], esi
mov esi, dword [esp + 0x20]
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x28]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x24]
and ebp, esi
mov esi, dword [ecx*4 + 0x43fad4]
xor ebx, ebp
mov ebp, dword [eax + 0x54]
add edi, ebx
add edi, esi
mov esi, dword [esp + 0x2c]
add edi, ebp
add esi, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], esi
add edx, esi
mov ebx, edi
mov esi, edi
shl ebx, 0x13
shr esi, 0xd
or ebx, esi
mov esi, edi
mov ebp, edi
shr esi, 0x16
shl ebp, 0xa
or esi, ebp
mov ebp, edi
xor ebx, esi
mov esi, edi
shl esi, 0x1e
shr ebp, 2
or esi, ebp
xor ebx, esi
mov esi, dword [esp + 0x34]
mov ebp, esi
and esi, edi
xor ebp, edi
and ebp, dword [esp + 0x38]
xor ebp, esi
mov esi, dword [esp + 0x2c]
add ebp, esi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x2c], ebp
je 0x402b41
mov edi, dword [eax + 0x5c]
mov esi, dword [eax + 0x50]
mov ebx, edi
mov ebp, edi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], esi
shl ebp, 0x19
shr edi, 7
or ebp, edi
mov edi, dword [esp + 0x40]
xor ebx, ebp
mov ebp, esi
shr edi, 3
xor ebx, edi
mov edi, esi
shr edi, 0x11
shl ebp, 0xf
or edi, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x14]
xor edi, ebp
shr esi, 0xa
xor edi, esi
mov esi, dword [eax + 0x58]
add ebx, edi
mov edi, dword [eax + 0x3c]
add ebx, edi
mov edi, dword [esp + 0x30]
add esi, ebx
mov dword [eax + 0x58], esi
mov esi, edx
mov ebx, edx
shl esi, 0x15
shr ebx, 0xb
or esi, ebx
mov ebx, edx
mov ebp, edx
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, edx
xor esi, ebx
mov ebx, edx
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x24]
xor esi, ebx
mov ebx, edx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x20]
and ebp, edx
xor ebx, ebp
mov ebp, dword [ecx*4 + 0x43fad8]
add esi, ebx
mov ebx, dword [eax + 0x58]
add esi, ebp
mov ebp, edi
add esi, ebx
mov ebx, dword [esp + 0x28]
add ebx, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x28], ebx
add esi, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x38], esi
xor ebp, ebx
and edi, ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x10], edi
mov ebp, ebx
mov edi, ebx
shl ebp, 0x13
shr edi, 0xd
or ebp, edi
mov edi, ebx
shr edi, 0x16
shl ebx, 0xa
or edi, ebx
xor ebp, edi
mov edi, dword [esp + 0x2c]
mov ebx, edi
shl ebx, 0x1e
shr edi, 2
or ebx, edi
mov edi, dword [esp + 0x40]
xor ebp, ebx
mov ebx, dword [esp + 0x34]
and edi, ebx
mov ebx, dword [esp + 0x10]
xor edi, ebx
mov ebx, dword [esp + 0x28]
add edi, ebx
add edi, ebp
test ecx, ecx
mov dword [esp + 0x28], edi
je 0x402c5c
mov edi, dword [eax + 0x60]
mov esi, dword [eax + 0x54]
mov ebx, edi
mov ebp, edi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
shl ebp, 0x19
shr edi, 7
or ebp, edi
mov edi, dword [esp + 0x18]
xor ebx, ebp
mov ebp, esi
shr edi, 3
xor ebx, edi
mov edi, esi
shr edi, 0x11
shl ebp, 0xf
or edi, ebp
mov ebp, esi
shr ebp, 0x13
shl esi, 0xd
or ebp, esi
mov esi, dword [esp + 0x14]
xor edi, ebp
shr esi, 0xa
xor edi, esi
mov esi, dword [eax + 0x5c]
add ebx, edi
mov edi, dword [eax + 0x40]
add ebx, edi
add esi, ebx
mov dword [eax + 0x5c], esi
mov esi, dword [esp + 0x38]
mov ebx, esi
mov edi, esi
shl ebx, 0x15
shr edi, 0xb
or ebx, edi
mov edi, esi
mov ebp, esi
shl edi, 0x1a
shr ebp, 6
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shr edi, 0x19
shl ebp, 7
or edi, ebp
mov ebp, dword [esp + 0x20]
xor ebx, edi
mov edi, esi
not edi
and edi, ebp
mov ebp, edx
and ebp, esi
xor edi, ebp
mov ebp, dword [ecx*4 + 0x43fadc]
add ebx, edi
mov edi, dword [eax + 0x5c]
add ebx, ebp
add ebx, edi
mov edi, dword [esp + 0x24]
add edi, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x24], edi
add ebx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x34], ebx
mov ebx, edi
mov ebp, edi
shl ebx, 0x13
shr ebp, 0xd
or ebx, ebp
mov ebp, edi
shr ebp, 0x16
shl edi, 0xa
or ebp, edi
mov edi, dword [esp + 0x28]
xor ebx, ebp
mov ebp, edi
shl ebp, 0x1e
shr edi, 2
or ebp, edi
mov edi, dword [esp + 0x40]
xor ebx, ebp
mov ebp, dword [esp + 0x28]
and edi, ebp
mov ebp, dword [esp + 0x10]
xor edi, ebp
mov ebp, dword [esp + 0x24]
add edi, ebp
add edi, ebx
test ecx, ecx
mov dword [esp + 0x24], edi
je 0x402d6d
mov edi, dword [eax + 0x58]
mov esi, dword [eax + 0x64]
mov ebx, edi
mov ebp, edi
shr ebx, 0x11
shl ebp, 0xf
or ebx, ebp
mov ebp, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], esi
shr ebp, 0x13
shl edi, 0xd
or ebp, edi
mov edi, dword [esp + 0x18]
xor ebx, ebp
mov ebp, esi
shr edi, 0xa
xor ebx, edi
mov edi, esi
shr edi, 0x12
shl ebp, 0xe
or edi, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x40]
xor edi, ebp
shr esi, 3
xor edi, esi
mov esi, dword [eax + 0x60]
add ebx, edi
mov edi, dword [eax + 0x44]
add ebx, edi
mov edi, dword [esp + 0x34]
add esi, ebx
mov dword [eax + 0x60], esi
mov esi, dword [esp + 0x38]
jmp 0x402d71
mov edi, dword [esp + 0x34]
mov ebx, edi
mov ebp, edi
shl ebx, 0x15
shr ebp, 0xb
or ebx, ebp
mov ebp, edi
shl ebp, 0x1a
shr edi, 6
or ebp, edi
mov edi, dword [esp + 0x34]
xor ebx, ebp
mov ebp, edi
shr ebp, 0x19
shl edi, 7
or ebp, edi
mov edi, dword [esp + 0x34]
xor ebx, ebp
mov ebp, edi
not ebp
and ebp, edx
and esi, edi
mov edi, dword [ecx*4 + 0x43fae0]
xor ebp, esi
mov esi, dword [eax + 0x60]
add ebx, ebp
add ebx, edi
add ebx, esi
mov esi, dword [esp + 0x20]
add esi, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], esi
add ebx, esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov ebx, esi
mov edi, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
mov ebp, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x28]
mov ebp, edi
xor ebp, dword [esp + 0x2c]
and ebp, esi
mov esi, dword [esp + 0x2c]
and edi, esi
xor ebp, edi
mov edi, dword [esp + 0x20]
add ebp, edi
add ebp, ebx
test ecx, ecx
mov dword [esp + 0x20], ebp
je 0x402e78
mov edi, dword [eax + 0x28]
mov esi, dword [eax + 0x5c]
mov dword [esp + 0x40], edi
mov edi, esi
mov ebx, esi
mov ebp, esi
shr edi, 0x11
shl ebx, 0xf
or edi, ebx
mov ebx, esi
shr ebx, 0x13
shl ebp, 0xd
or ebx, ebp
xor edi, ebx
shr esi, 0xa
xor edi, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, esi
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, esi
shl ebp, 0x19
shr esi, 7
or ebp, esi
mov esi, dword [esp + 0x40]
xor ebx, ebp
shr esi, 3
xor ebx, esi
mov esi, dword [eax + 0x64]
add edi, ebx
mov ebx, dword [eax + 0x48]
add edi, ebx
add esi, edi
mov dword [eax + 0x64], esi
mov esi, dword [esp + 0x30]
add ecx, 0x10
mov edi, esi
mov ebx, esi
shl edi, 0x15
shr ebx, 0xb
or edi, ebx
mov ebx, esi
mov ebp, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
mov ebp, esi
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x38]
xor edi, ebx
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x34]
and ebp, esi
mov esi, dword [eax + 0x64]
xor ebx, ebp
add edi, ebx
mov ebx, dword [ecx*4 + 0x43faa4]
add edi, ebx
mov ebx, dword [esp + 0x2c]
add edi, esi
mov esi, dword [esp + 0x20]
add edx, edi
mov edi, esi
add ebx, edx
mov ebp, esi
mov dword [esp + 0x2c], ebx
mov ebx, esi
shl ebx, 0x13
shr edi, 0xd
or ebx, edi
mov edi, esi
shr edi, 0x16
shl ebp, 0xa
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, esi
shl edi, 0x1e
shr ebp, 2
or edi, ebp
mov ebp, esi
xor ebx, edi
mov edi, dword [esp + 0x28]
xor ebp, edi
and esi, edi
and ebp, dword [esp + 0x24]
xor ebp, esi
add ebp, edx
cmp ecx, 0x40
lea edx, [ebx + ebp]
jb 0x401e5f
mov esi, dword [eax + 8]
mov ecx, dword [esp + 0x20]
mov ebp, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
add esi, edx
mov edx, dword [eax + 0xc]
add edx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x24]
mov dword [eax + 8], esi
mov esi, dword [eax + 0x1c]
add ebp, edx
mov edx, dword [esp + 0x30]
add ebx, edi
mov edi, dword [eax + 0x18]
add edi, ecx
mov ecx, dword [esp + 0x34]
add esi, edx
mov edx, dword [eax + 0x20]
add edx, ecx
mov ecx, dword [eax + 0x24]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x38]
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], esi
pop edi
mov dword [eax + 0x10], ebp
add ecx, edx
pop esi
mov dword [eax + 0x14], ebx
pop ebp
mov dword [eax + 0x24], ecx
pop ebx
add esp, 0x2c
ret