Function at 0x42d430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x350
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [esp + 0x338], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [esp + 0x328], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
movups xmm1, xmmword [ecx + 0x20]
movups xmmword [esp + 0x318], xmm1
movdqu xmmword [esp + 0x308], xmm0
movdqu xmm1, xmmword [eax]
pxor xmm0, xmm0
movdqa xmm2, xmm1
punpckhbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + 0x88], xmm1
movdqu xmm2, xmmword [eax + 0x10]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x98], xmm2
movdqu xmm2, xmmword [eax + 0x20]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0xa8], xmm2
movdqu xmm2, xmmword [eax + 0x30]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0xb8], xmm2
movdqu xmm2, xmmword [eax + 0x40]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0xc8], xmm2
movdqu xmm2, xmmword [eax + 0x50]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0xd8], xmm2
movdqu xmm2, xmmword [eax + 0x60]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0xe8], xmm2
movdqu xmm2, xmmword [eax + 0x70]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm0, xmm2, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm3
movdqu xmmword [esp + 0xf8], xmm0
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd edx, xmm0
mov eax, 0x12
nop dword [eax]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + eax*8 + 0x6c]
mov edi, dword [esp + eax*8 + 0x68]
mov ecx, edi
shld ecx, esi, 0xd
mov ebx, esi
shld ebx, edi, 0xd
mov edx, esi
shld edx, edi, 3
xor edx, ecx
mov ecx, esi
shld ecx, edi, 0x1a
shld edi, esi, 3
xor edi, ebx
xor edi, ecx
shr esi, 6
xor esi, edx
add edi, dword [esp + eax*8 + 0x40]
adc esi, dword [esp + eax*8 + 0x44]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*8]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + ecx*8 + 4]
mov ecx, eax
shld ecx, ebx, 0x1f
mov dword [esp + 8], ecx
mov edx, ebx
mov ecx, ebx
shld edx, eax, 0x1f
mov ebx, eax
mov dword [esp + 0x50], ecx
shld ebx, ecx, 0x18
xor ebx, dword [esp + 8]
mov eax, dword [esp + 4]
shld ecx, eax, 0x18
xor ecx, edx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 4]
shld edx, eax, 0x19
mov eax, dword [esp + 0x14]
xor edx, ecx
mov ecx, dword [esp + 0x50]
shr ecx, 7
xor ecx, ebx
add edi, dword [esp + 0x20]
adc esi, dword [esp + 0x1c]
add edi, edx
adc esi, ecx
mov dword [esp + eax*8 + 0x78], edi
mov dword [esp + eax*8 + 0x7c], esi
inc eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x50]
cmp eax, 0x52
jne 0x42d670
mov eax, dword [esp + 0x344]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x328]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x334]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x330]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x314]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x31c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x318]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x324]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x320]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0xfffffff8
nop dword [eax]
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
mov edx, ebx
shld edx, esi, 0x12
mov eax, ebx
shld eax, esi, 0xe
xor eax, edx
mov edx, esi
shld edx, ebx, 0x12
shld esi, ebx, 0xe
xor esi, edx
mov edi, ebx
mov ecx, ebx
mov ebx, dword [esp + 4]
shld edi, ebx, 0x17
xor edi, esi
mov dword [esp + 0x14], ecx
shld ebx, ecx, 0x17
xor ebx, eax
add edi, dword [esp + 0x34]
adc ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x24]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x2c]
xor edx, esi
and edx, ecx
and eax, dword [esp + 4]
xor eax, dword [esp + 0x24]
xor edx, esi
mov ecx, dword [esp + 0x3c]
add edi, dword [ecx*8 + 0x43d520]
adc ebx, dword [ecx*8 + 0x43d524]
add edi, dword [esp + ecx*8 + 0xc8]
adc ebx, dword [esp + ecx*8 + 0xcc]
add edi, edx
adc ebx, eax
mov ecx, dword [esp + 0x20]
mov eax, ecx
mov esi, dword [esp + 0x1c]
shld eax, esi, 4
mov edx, esi
shld edx, ecx, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
mov edx, esi
shld edx, ecx, 0x1e
xor edx, eax
mov eax, ecx
shld eax, esi, 0x1e
xor eax, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
shld dword [esp + 0x10], esi, 0x19
xor dword [esp + 0x10], eax
mov eax, esi
shld eax, ecx, 0x19
xor eax, edx
mov esi, dword [esp + 0x28]
mov edx, esi
and edx, ecx
mov dword [esp + 0x34], edx
mov edx, ecx
mov dword [esp + 0x20], ecx
or esi, ecx
and esi, dword [esp + 0x38]
or esi, dword [esp + 0x34]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
and esi, edx
mov ecx, dword [esp + 0xc]
or ecx, edx
and ecx, dword [esp + 0x50]
or ecx, esi
mov esi, dword [esp + 0x30]
add esi, dword [esp + 0x10]
adc ecx, eax
mov eax, dword [esp + 0x40]
add eax, edi
mov edx, dword [esp + 0x4c]
adc edx, ebx
add esi, edi
mov dword [esp + 0x30], esi
adc ecx, ebx
mov dword [esp + 0x44], ecx
mov edi, eax
mov ebx, edx
shld eax, edx, 0x12
mov esi, edi
shld esi, edx, 0xe
xor esi, eax
mov eax, edx
shld eax, edi, 0x12
mov edx, edi
mov edi, ebx
shld edi, edx, 0xe
mov ecx, edx
mov dword [esp + 0x40], edx
xor edi, eax
mov eax, edx
shld eax, ebx, 0x17
xor eax, edi
mov dword [esp + 0x10], eax
mov edx, ebx
mov eax, ebx
shld edx, ecx, 0x17
xor edx, esi
mov esi, dword [esp + 8]
mov ebx, esi
xor ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, ecx
xor edi, dword [esp + 4]
mov dword [esp + 0x4c], eax
and edi, eax
and ebx, dword [esp + 0x40]
xor edi, ecx
xor ebx, esi
add ebx, dword [esp + 0x2c]
adc edi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
add ebx, dword [eax*8 + 0x43d528]
adc edi, dword [eax*8 + 0x43d52c]
add ebx, dword [esp + 0x10]
adc edi, edx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x320], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x324], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x340], edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x344], ecx
add ebx, dword [esp + eax*8 + 0xd0]
adc edi, dword [esp + eax*8 + 0xd4]
mov eax, edx
mov esi, edx
shld eax, ecx, 4
mov dword [esp + 0x2c], eax
mov eax, ecx
mov edx, ecx
mov ecx, esi
shld eax, esi, 4
mov dword [esp + 0x24], eax
mov esi, edx
shld esi, ecx, 0x1e
xor esi, dword [esp + 0x2c]
mov eax, ecx
shld eax, edx, 0x1e
xor eax, dword [esp + 0x24]
shld ecx, edx, 0x19
xor ecx, eax
mov dword [esp + 0x24], ecx
mov eax, edx
mov ecx, dword [esp + 0x30]
shld eax, ecx, 0x19
xor eax, esi
mov dword [esp + 0x2c], eax
mov esi, edx
mov eax, dword [esp + 0x1c]
and esi, eax
or edx, eax
and edx, dword [esp + 0xc]
or edx, esi
mov esi, edx
mov edx, ecx
mov eax, dword [esp + 0x20]
and ecx, eax
or edx, eax
and edx, dword [esp + 0x28]
or edx, ecx
add edx, dword [esp + 0x24]
mov ecx, esi
adc ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
add eax, ebx
mov esi, dword [esp + 0x50]
adc esi, edi
add edx, ebx
adc ecx, edi
mov dword [esp + 0x24], ecx
mov ebx, eax
mov ecx, eax
mov edi, esi
shld ecx, esi, 0x12
shld eax, esi, 0xe
shld esi, ebx, 0x12
xor eax, ecx
mov ecx, edi
mov dword [esp + 0x50], edi
shld edi, ebx, 0xe
xor edi, esi
mov esi, ebx
shld esi, ecx, 0x17
xor esi, edi
mov dword [esp + 0x10], esi
mov esi, ecx
shld esi, ebx, 0x17
xor esi, eax
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x4c]
xor eax, dword [esp + 4]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
xor edi, ecx
and eax, dword [esp + 0x50]
mov esi, ebx
mov dword [esp + 0x38], ebx
and edi, ebx
xor eax, dword [esp + 4]
xor edi, ecx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 8]
add ebx, dword [ecx*8 + 0x43d530]
mov dword [esp + 8], ebx
mov dword [esp + 0x318], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x31c], esi
mov ebx, dword [esp + 0x18]
adc ebx, dword [ecx*8 + 0x43d534]
mov dword [esp + 0x338], edx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x33c], esi
mov esi, dword [esp + 8]
add esi, dword [esp + ecx*8 + 0xd8]
adc ebx, dword [esp + ecx*8 + 0xdc]
mov ecx, esi
add ecx, edi
adc ebx, eax
add ecx, dword [esp + 0x10]
mov dword [esp + 8], ecx
adc ebx, dword [esp + 0x34]
mov dword [esp + 0x18], ebx
mov edi, edx
mov eax, edx
mov ecx, dword [esp + 0x24]
shld eax, ecx, 4
mov edx, ecx
shld edx, edi, 4
mov esi, ecx
shld esi, edi, 0x1e
xor esi, eax
mov eax, edi
shld eax, ecx, 0x1e
xor eax, edx
mov edx, edi
shld edx, ecx, 0x19
xor edx, eax
mov eax, ecx
shld eax, edi, 0x19
mov ebx, edi
mov dword [esp + 0x2c], edi
xor eax, esi
mov esi, ecx
mov edi, dword [esp + 0x44]
and esi, edi
or ecx, edi
and ecx, dword [esp + 0x1c]
or ecx, esi
mov dword [esp + 0x48], ecx
mov esi, ebx
mov edi, dword [esp + 0x30]
and esi, edi
mov ecx, ebx
or ecx, edi
and ecx, dword [esp + 0x20]
or ecx, esi
add ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x48]
adc ecx, eax
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 8]
add edi, esi
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
adc ebx, eax
add edx, esi
mov dword [esp + 0x6c], edx
adc ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, edi
shld ecx, ebx, 0x12
mov eax, edi
shld eax, ebx, 0xe
mov edx, ebx
shld edx, edi, 0x12
xor eax, ecx
mov esi, ebx
shld esi, edi, 0xe
xor esi, edx
mov ecx, edi
shld ecx, ebx, 0x17
xor ecx, esi
mov dword [esp + 8], ecx
mov ecx, ebx
mov dword [esp + 0xc], ebx
shld ecx, edi, 0x17
mov dword [esp + 0x28], edi
xor ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
xor eax, ecx
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
xor esi, edx
and eax, ebx
and esi, edi
xor eax, ecx
xor esi, edx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
add ebx, dword [ecx*8 + 0x43d538]
mov dword [esp + 0x310], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x314], edi
mov edi, dword [esp + 4]
adc edi, dword [ecx*8 + 0x43d53c]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x330], edx
mov edi, dword [esp + 0x48]
mov dword [esp + 0x334], edi
add ebx, dword [esp + ecx*8 + 0xe0]
mov edi, dword [esp + 4]
adc edi, dword [esp + ecx*8 + 0xe4]
mov dword [esp + 4], edi
add ebx, esi
adc dword [esp + 4], eax
add ebx, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x18]
adc dword [esp + 4], eax
mov esi, edx
mov eax, edx
mov edi, dword [esp + 0x48]
shld eax, edi, 4
mov ecx, edi
shld ecx, edx, 4
mov edx, edi
shld edx, esi, 0x1e
xor edx, eax
mov eax, esi
shld eax, edi, 0x1e
xor eax, ecx
mov ecx, esi
shld ecx, edi, 0x19
xor ecx, eax
mov dword [esp + 8], ecx
mov ecx, edi
shld ecx, esi, 0x19
mov eax, esi
xor ecx, edx
mov esi, edi
mov ebx, dword [esp + 0x24]
and esi, ebx
mov edx, edi
or edx, ebx
and edx, dword [esp + 0x44]
or edx, esi
mov esi, eax
mov ebx, dword [esp + 0x2c]
and eax, ebx
or esi, ebx
and esi, dword [esp + 0x30]
or esi, eax
add esi, dword [esp + 8]
adc edx, ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov edi, dword [esp + 0x1c]
adc edi, dword [esp + 4]
add ecx, esi
mov dword [esp + 0x14], ecx
adc dword [esp + 4], edx
mov esi, eax
mov ecx, eax
shld ecx, edi, 0x12
shld eax, edi, 0xe
mov edx, edi
shld edx, esi, 0x12
mov ebx, esi
xor eax, ecx
mov esi, edi
mov ecx, ebx
mov dword [esp + 0x20], ebx
shld esi, ebx, 0xe
xor esi, edx
mov edx, ebx
shld edx, edi, 0x17
xor edx, esi
mov dword [esp + 8], edx
mov ebx, edi
mov dword [esp + 0x1c], edi
mov edx, edi
shld ebx, ecx, 0x17
xor ebx, eax
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x50]
xor eax, edi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
xor esi, ecx
and eax, edx
mov edx, dword [esp + 0x20]
and esi, edx
xor eax, edi
xor esi, ecx
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
add ecx, dword [edi*8 + 0x43d540]
mov dword [esp + 0x308], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30c], edx
mov edx, dword [esp + 0x4c]
adc edx, dword [edi*8 + 0x43d544]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x328], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x32c], edi
mov edi, dword [esp + 0x3c]
add ecx, dword [esp + edi*8 + 0xe8]
adc edx, dword [esp + edi*8 + 0xec]
add ecx, esi
adc edx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x34], ecx
adc edx, ebx
mov dword [esp + 0x10], edx
mov edi, dword [esp + 0x14]
mov eax, edi
mov ecx, dword [esp + 4]
shld eax, ecx, 4
mov edx, dword [esp + 4]
shld edx, edi, 0x1e
xor edx, eax
mov eax, dword [esp + 4]
shld eax, edi, 4
mov esi, edi
mov ecx, dword [esp + 4]
shld esi, ecx, 0x1e
xor esi, eax
mov ecx, edi
mov eax, dword [esp + 4]
shld ecx, eax, 0x19
xor ecx, esi
mov eax, dword [esp + 4]
shld eax, edi, 0x19
xor eax, edx
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x48]
and edx, esi
mov ebx, dword [esp + 4]
or ebx, esi
and ebx, dword [esp + 0x24]
or ebx, edx
mov edx, edi
mov esi, dword [esp + 0x6c]
and edx, esi
or edi, esi
and edi, dword [esp + 0x2c]
or edi, edx
add edi, ecx
adc ebx, eax
mov eax, dword [esp + 0x1c]
xor eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add ecx, dword [eax*8 + 0x43d548]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x50]
adc ecx, dword [eax*8 + 0x43d54c]
mov dword [esp + 0x50], ecx
add edi, dword [esp + 0x34]
adc ebx, dword [esp + 0x10]
mov eax, edi
shld eax, ebx, 4
mov edx, edi
shld edx, ebx, 0x1e
mov ecx, ebx
shld ecx, edi, 0x1e
xor ecx, eax
mov eax, ebx
shld eax, edi, 4
xor edx, eax
mov esi, edi
shld esi, ebx, 0x19
xor esi, edx
mov eax, ebx
shld eax, edi, 0x19
mov edx, edi
mov dword [esp + 0x40], edi
xor eax, ecx
mov ecx, ebx
mov dword [esp + 0x4c], ebx
and ecx, dword [esp + 4]
or ebx, dword [esp + 4]
and ebx, dword [esp + 0x48]
or ebx, ecx
mov dword [esp + 8], ebx
mov ecx, edi
mov edi, dword [esp + 0x14]
and ecx, edi
or edx, edi
and edx, dword [esp + 0x6c]
or edx, ecx
add edx, esi
mov dword [esp + 0x74], edx
adc dword [esp + 8], eax
mov ebx, dword [esp + 0x34]
add ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
adc edi, dword [esp + 0x44]
mov esi, ebx
shld esi, edi, 0x12
mov edx, ebx
shld edx, edi, 0xe
mov ecx, ebx
shld ecx, edi, 0x17
mov eax, edi
shld eax, ebx, 0x12
xor edx, esi
mov esi, edi
shld esi, ebx, 0xe
xor esi, eax
mov eax, edi
shld eax, ebx, 0x17
xor ecx, esi
mov dword [esp + 0x30], ecx
xor eax, edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x320], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x324], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x340], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x344], edi
mov esi, dword [esp + 0x70]
and esi, ebx
mov edx, dword [esp + 0x18]
and edx, edi
xor edx, dword [esp + 0xc]
mov ebx, edx
xor esi, dword [esp + 0x28]
mov edi, esi
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add esi, dword [esp + edx*8 + 0xf0]
mov ecx, dword [esp + 0x50]
adc ecx, dword [esp + edx*8 + 0xf4]
add esi, edi
adc ecx, ebx
add esi, dword [esp + 0x30]
adc ecx, eax
mov eax, dword [esp + 0x2c]
add eax, esi
mov ebx, dword [esp + 0x24]
adc ebx, ecx
add esi, dword [esp + 0x74]
mov dword [esp + 0x38], esi
adc ecx, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov esi, eax
mov ecx, eax
shld ecx, ebx, 0x12
shld eax, ebx, 0xe
mov edx, ebx
shld edx, esi, 0x12
xor eax, ecx
mov ecx, ebx
shld ecx, esi, 0xe
xor ecx, edx
mov edx, esi
shld edx, ebx, 0x17
xor edx, ecx
mov dword [esp + 8], edx
mov ecx, ebx
mov edi, esi
mov dword [esp + 0x2c], esi
shld ecx, esi, 0x17
xor ecx, eax
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
xor esi, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
xor ecx, edx
mov dword [esp + 0x24], ebx
and esi, ebx
and ecx, edi
xor esi, eax
xor ecx, edx
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
add eax, dword [edi*8 + 0x43d550]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x338], edx
mov dword [esp + 0x33c], ebx
mov edx, dword [esp + 0xc]
adc edx, dword [edi*8 + 0x43d554]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x318], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x31c], ebx
add eax, dword [esp + edi*8 + 0xf8]
adc edx, dword [esp + edi*8 + 0xfc]
add eax, ecx
adc edx, esi
add eax, dword [esp + 8]
mov dword [esp + 8], eax
adc edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x38]
mov eax, ecx
mov edi, dword [esp + 0x50]
shld eax, edi, 4
mov esi, edi
shld esi, ecx, 0x1e
xor esi, eax
mov eax, edi
shld eax, ecx, 4
mov edx, ecx
shld edx, edi, 0x1e
xor edx, eax
mov eax, ecx
shld eax, edi, 0x19
xor eax, edx
mov dword [esp + 0xc], eax
mov edx, edi
shld edx, ecx, 0x19
mov ebx, ecx
xor edx, esi
mov esi, edi
mov eax, dword [esp + 0x4c]
and esi, eax
mov ecx, edi
or ecx, eax
and ecx, dword [esp + 4]
or ecx, esi
mov esi, ebx
mov eax, ebx
mov ebx, dword [esp + 0x40]
and eax, ebx
or esi, ebx
and esi, dword [esp + 0x14]
or esi, eax
add esi, dword [esp + 0xc]
adc ecx, edx
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x34]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
add edx, dword [eax*8 + 0x43d558]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
adc edx, dword [eax*8 + 0x43d55c]
mov dword [esp + 0x1c], edx
add esi, dword [esp + 8]
adc ecx, dword [esp + 0x18]
mov eax, esi
shld eax, ecx, 4
mov edx, esi
shld edx, ecx, 0x1e
mov edi, ecx
shld edi, esi, 0x1e
xor edi, eax
mov eax, ecx
shld eax, esi, 4
xor edx, eax
mov eax, esi
shld eax, ecx, 0x19
xor eax, edx
mov dword [esp + 0xc], eax
mov eax, ecx
shld eax, esi, 0x19
xor eax, edi
mov dword [esp + 0x28], eax
mov ebx, ecx
mov eax, dword [esp + 0x50]
and ebx, eax
mov edi, ecx
or edi, eax
and edi, dword [esp + 0x4c]
or edi, ebx
mov edx, esi
mov eax, dword [esp + 0x38]
and edx, eax
mov ebx, esi
or ebx, eax
and ebx, dword [esp + 0x40]
or ebx, edx
add ebx, dword [esp + 0xc]
adc edi, dword [esp + 0x28]
mov eax, dword [esp + 8]
add eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov edx, dword [esp + 0x18]
adc edx, dword [esp + 0x48]
mov dword [esp + 0x28], eax
shld dword [esp + 0x28], edx, 0x12
mov dword [esp + 0xc], eax
shld dword [esp + 0xc], edx, 0xe
mov dword [esp + 0x18], edx
mov dword [esp + 0x48], eax
shld dword [esp + 0x48], edx, 0x17
mov dword [esp + 0x44], edx
shld dword [esp + 0x44], eax, 0x12
mov eax, dword [esp + 0x28]
xor dword [esp + 0xc], eax
mov eax, edx
mov edx, dword [esp + 8]
shld eax, edx, 0xe
xor eax, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 8]
shld dword [esp + 0x44], edx, 0x17
xor dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
xor dword [esp + 0x44], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x310], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x314], ecx
mov eax, dword [esp + 8]
mov dword [esp + 0x330], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x334], edx
mov esi, dword [esp + 0x70]
and esi, eax
mov eax, dword [esp + 0x30]
and eax, edx
xor eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
xor esi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
add edx, dword [esp + eax*8 + 0x100]
mov ecx, dword [esp + 0x1c]
adc ecx, dword [esp + eax*8 + 0x104]
add edx, esi
adc ecx, dword [esp + 0x30]
add edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
add eax, edx
adc dword [esp + 4], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x328], eax
mov eax, edx
add eax, ebx
mov dword [esp + 0x20], eax
mov esi, ecx
adc esi, edi
mov eax, dword [esp + 4]
mov dword [esp + 0x32c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x308], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30c], esi
mov eax, dword [esp + 0x3c]
add eax, 8
mov dword [esp + 0x3c], eax
cmp eax, 0x48
jb 0x42d7f0
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edi
movd xmm2, dword [esp + 0x28]
movd xmm3, dword [esp + 0xc]
movd xmm4, dword [esp + 0x20]
movd xmm5, dword [esp + 0x1c]
movd xmm1, dword [esp + 0x40]
movd xmm6, dword [esp + 0x4c]
movd xmm0, dword [esp + 0x38]
movd xmm7, dword [esp + 0x50]
punpckldq xmm2, xmm3
movd xmm3, dword [esp + 8]
punpckldq xmm4, xmm5
movss xmm5, dword [esp + 0x18]
movaps xmmword [esp + 0x50], xmm5
punpcklqdq xmm4, xmm2
mov eax, dword [ebp + 8]
movdqu xmm2, xmmword [eax + 0x10]
paddq xmm2, xmm4
movdqu xmm4, xmmword [eax + 0x20]
movdqu xmmword [eax + 0x10], xmm2
movd xmm2, dword [esp + 0x14]
punpckldq xmm1, xmm6
movd xmm5, dword [esp + 4]
punpckldq xmm0, xmm7
movd xmm6, dword [esp + 0x34]
punpcklqdq xmm0, xmm1
movd xmm7, dword [esp + 0x10]
paddq xmm0, xmm4
movd xmm1, dword [esp + 0x2c]
movdqu xmmword [eax + 0x20], xmm0
movd xmm0, dword [esp + 0x24]
punpckldq xmm3, xmmword [esp + 0x50]
punpckldq xmm2, xmm5
punpcklqdq xmm2, xmm3
movdqu xmm3, xmmword [eax + 0x30]
paddq xmm2, xmm3
movdqu xmmword [eax + 0x30], xmm2
punpckldq xmm6, xmm7
movdqu xmm2, xmmword [eax + 0x40]
punpckldq xmm1, xmm0
punpcklqdq xmm1, xmm6
paddq xmm1, xmm2
movdqu xmmword [eax + 0x40], xmm1
lea eax, [esp + 0x78]
push 0x2d0
push eax
call fcn.00422b60
add esp, 8
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret