Function at 0x40ee20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x58
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
cmp ebx, 0x20
jbe 0x40f413
mov ecx, 0xc3a5c85c
cmp ebx, 0x40
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x40], edi
jbe 0x40f565
mov eax, 0xb492b66f
mov edx, dword [edi + ebx - 0xc]
mov dword [ebp - 0x30], edx
xor edx, eax
mov dword [ebp - 0x10], edx
mov esi, 0xbe98f273
mov edx, dword [edi + ebx - 0x10]
mov dword [ebp - 0x24], edx
mov eax, edx
xor eax, esi
mov dword [ebp - 0x1c], eax
mov edx, dword [edi + ebx - 0x34]
mov dword [ebp - 0x38], edx
xor edx, ecx
mov dword [ebp - 0x20], edx
mov esi, dword [edi + ebx - 0x38]
mov edx, esi
mov ecx, 0x97cb3127
xor edx, ecx
mov dword [ebp - 0x28], edx
mov eax, dword [edi + ebx - 0x40]
add eax, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [edi + ebx - 0x3c]
adc eax, 0
mov dword [ebp - 0x2c], eax
mov ecx, dword [edi + ebx - 0x28]
mov dword [ebp - 0x34], ecx
mov edx, edi
mov edi, ecx
add edi, dword [ebp - 0x1c]
mov ecx, dword [edx + ebx - 0x24]
mov dword [ebp - 0x44], ecx
adc ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
add edi, ebx
adc ecx, eax
mov eax, edi
shld eax, ecx, 0xb
mov dword [ebp - 0x3c], eax
shld ecx, edi, 0xb
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x18]
add esi, dword [edx + edi - 0x30]
mov edi, dword [ebp - 0x18]
adc eax, dword [edx + edi - 0x2c]
add esi, ebx
mov ebx, dword [ebp - 0x2c]
adc eax, ebx
mov edi, eax
shld edi, esi, 0x14
mov edx, esi
shld edx, eax, 0x14
add edx, dword [ebp - 0x14]
adc edi, ebx
add edx, ecx
mov dword [ebp - 0x2c], edx
adc edi, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], edi
add esi, dword [ebp - 0x34]
mov dword [ebp - 0x48], esi
adc eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
mov ecx, 0xbe98f273
mul ecx
imul esi, dword [ebp - 0x18], 0xb492b66f
add esi, edx
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x40]
add eax, dword [edi + edx - 0x20]
mov edx, dword [ebp - 0x18]
adc esi, dword [edi + edx - 0x1c]
mov edx, dword [ebp - 0x18]
mov edx, dword [edi + edx - 8]
mov dword [ebp - 0x34], edx
mov ecx, 0x97cb3127
add ecx, edx
mov edx, dword [ebp - 0x18]
mov edx, dword [edi + edx - 4]
mov dword [ebp - 0x4c], edx
mov ebx, 0xc3a5c85c
adc ebx, edx
add ecx, eax
mov edx, eax
adc ebx, esi
mov eax, ecx
shld eax, ebx, 0xb
mov dword [ebp - 0x14], eax
shld ebx, ecx, 0xb
mov dword [ebp - 0x44], ebx
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
add ecx, dword [edi + ebx - 0x18]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
adc eax, dword [edi + ebx - 0x14]
mov edi, edx
add ecx, edx
adc eax, esi
mov ebx, eax
mov edx, eax
shld ebx, ecx, 0x14
mov eax, ecx
shld eax, edx, 0x14
add eax, edi
adc ebx, esi
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
adc ebx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ebx
add ecx, dword [ebp - 0x34]
mov dword [ebp - 0x24], ecx
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x30], edx
mov esi, dword [ebp - 0x3c]
mov ecx, esi
shr ecx, 0xf
xor ecx, dword [ebp - 0x2c]
mov eax, ecx
mov ebx, 0xbe98f273
mul ebx
imul esi, esi, 0xbe98f273
add esi, edx
imul ecx, ecx, 0xb492b66f
add esi, ecx
add eax, dword [ebp - 0x28]
adc esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx]
mov dword [ebp - 0x20], eax
add edx, eax
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], esi
adc ecx, esi
mov esi, ecx
shld esi, edx, 0x19
shrd ecx, edx, 7
mov eax, ecx
mul ebx
mov edi, 0xbe98f273
mov dword [ebp - 0x50], eax
imul eax, ecx, 0xb492b66f
add eax, edx
imul ecx, esi, 0xbe98f273
add ecx, eax
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x10]
mov ecx, edx
mov eax, dword [ebp - 0x1c]
shld ecx, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mul edi
mov dword [ebp - 0x4c], eax
imul eax, esi, 0xb492b66f
add eax, edx
imul ecx, ecx, 0xbe98f273
add ecx, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x18]
dec eax
and eax, 0xffffffc0
xor ebx, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
mov edx, dword [ebp - 0x50]
add edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x54]
adc eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x4c]
add edx, esi
adc eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
mov edi, dword [ecx + ebx + 0x10]
mov dword [ebp - 0x5c], edi
add edx, edi
mov edi, dword [ecx + ebx + 0x14]
mov dword [ebp - 0x58], edi
adc eax, edi
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x28], edi
mov edi, eax
shld edi, edx, 0x1b
shrd eax, edx, 5
mov ebx, eax
mov edx, 0xb492b66f
imul ebx, edx
mov edx, 0xbe98f273
mul edx
add edx, ebx
mov ebx, 0xbe98f273
imul edi, ebx
add edi, edx
mov dword [ebp - 0x34], edi
add esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
adc ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x40]
mov edx, dword [edi + edx + 0x30]
mov dword [ebp - 0x64], edx
add esi, edx
mov edx, dword [ebp - 0x10]
mov edx, dword [edi + edx + 0x34]
mov dword [ebp - 0x60], edx
adc ecx, edx
mov edi, ecx
shld edi, esi, 0x16
shrd ecx, esi, 0xa
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
xor ecx, esi
mov ebx, dword [ebp - 0x28]
xor ebx, dword [ebp - 0x30]
mov edx, ebx
shld edx, ecx, 0x1f
mov dword [ebp - 0x54], edx
mov edx, ebx
shrd edx, ecx, 1
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
mov edx, 0xbe98f273
mul edx
mov ebx, 0xb492b66f
imul ecx, ebx
add edx, ecx
mov ecx, 0xbe98f273
imul edi, ecx
add edi, edx
mov ebx, edi
mov ecx, eax
mov eax, dword [ebp - 0x2c]
mov edx, 0xbe98f273
mul edx
mov edi, 0xbe98f273
mov dword [ebp - 0x28], eax
xor ebx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], ebx
xor ecx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
mov eax, 0xb492b66f
mov ecx, dword [ebp - 0x2c]
imul ecx, eax
add ecx, edx
mov edx, dword [ebp - 0x3c]
imul edx, edi
add edx, ecx
mov eax, dword [ebp - 0x34]
xor eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
xor ecx, dword [ebp - 0x44]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x28]
add edi, dword [ebx + ecx]
mov dword [ebp - 0x28], edi
mov ecx, dword [ebp - 0x10]
adc edx, dword [ebx + ecx + 4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebx + ecx + 0x18]
mov dword [ebp - 0x38], ecx
add esi, ecx
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebx + ecx + 0x1c]
mov dword [ebp - 0x24], edi
mov ecx, dword [ebp - 0x30]
adc ecx, edi
add esi, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
adc ecx, eax
add esi, dword [ebp - 0x28]
adc ecx, edx
mov eax, esi
shld eax, ecx, 0xb
mov dword [ebp - 0x30], eax
shld ecx, esi, 0xb
mov edi, ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x5c]
mov esi, ebx
add eax, dword [ebx + ecx + 8]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x58]
adc ebx, dword [esi + ecx + 0xc]
add eax, dword [ebp - 0x28]
adc ebx, edx
mov esi, eax
shld esi, ebx, 0x14
mov ecx, ebx
shld ecx, eax, 0x14
add esi, dword [ebp - 0x28]
adc edx, ecx
add esi, edi
mov dword [ebp - 0x2c], esi
adc edx, dword [ebp - 0x30]
mov dword [ebp - 0x3c], edx
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x48], eax
adc ebx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ebx
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x14]
adc ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x40]
add edx, dword [esi + eax + 0x20]
mov eax, dword [ebp - 0x10]
adc ecx, dword [esi + eax + 0x24]
mov edi, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [esi + eax + 0x38]
mov dword [ebp - 0x30], ecx
add ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x10]
mov ebx, dword [esi + eax + 0x3c]
mov dword [ebp - 0x28], ebx
adc ebx, dword [ebp - 0x1c]
add ecx, edx
adc ebx, edi
mov eax, ecx
shld eax, ebx, 0xb
mov dword [ebp - 0x24], eax
shld ebx, ecx, 0xb
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x64]
mov ecx, esi
add edi, dword [esi + eax + 0x28]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x60]
adc esi, dword [ecx + eax + 0x2c]
add edi, edx
adc esi, dword [ebp - 0x14]
mov ecx, edi
shld ecx, esi, 0x14
mov eax, esi
shld eax, edi, 0x14
add edx, ecx
mov ecx, dword [ebp - 0x14]
adc ecx, eax
mov eax, dword [ebp - 0x18]
add edx, ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x44], edx
adc ecx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ecx
mov ecx, edi
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x24], ecx
adc esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], esi
add ebx, 0x40
cmp eax, ebx
jne 0x40f046
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x44]
xor esi, edi
mov ecx, 0xeb382d69
mov eax, esi
mul ecx
mov ebx, 0xeb382d69
mov ecx, eax
imul eax, esi, 0x9ddfea08
add eax, edx
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x14]
xor edx, esi
imul edx, edx, 0xeb382d69
add edx, eax
xor ecx, edi
xor esi, edx
shr edx, 0xf
xor ecx, edx
mov eax, ecx
mul ebx
mov ebx, dword [ebp - 0x38]
imul edi, esi, 0xeb382d69
add edi, edx
imul ecx, ecx, 0x9ddfea08
add edi, ecx
imul ecx, edi, 0xeb382d69
shr edi, 0xf
xor edi, eax
mov eax, edi
mov edx, 0xeb382d69
mul edx
add edx, ecx
imul ecx, edi, 0x9ddfea08
add edx, ecx
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x18], eax
adc edx, dword [ebp - 0x54]
mov dword [ebp - 0x10], edx
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x24]
xor esi, edi
mov eax, esi
mov ecx, 0xeb382d69
mul ecx
mov ecx, eax
imul eax, esi, 0x9ddfea08
add eax, edx
mov esi, dword [ebp - 0x30]
xor ebx, esi
imul edx, ebx, 0xeb382d69
add edx, eax
xor ecx, edi
xor esi, edx
shr edx, 0xf
xor ecx, edx
mov eax, ecx
mov ebx, 0xeb382d69
mul ebx
imul esi, esi, 0xeb382d69
add esi, edx
imul ecx, ecx, 0x9ddfea08
add esi, ecx
imul edi, esi, 0xeb382d69
shr esi, 0xf
xor esi, eax
mov eax, esi
mul ebx
mov dword [ebp - 0x14], eax
mov ecx, edx
add ecx, edi
imul eax, esi, 0x9ddfea08
add ecx, eax
mov ebx, dword [ebp - 0x1c]
mov eax, ebx
shr eax, 0xf
xor eax, dword [ebp - 0x4c]
mov edi, 0xb492b66f
imul edi, eax
mov edx, 0xbe98f273
mul edx
mov esi, eax
mov eax, 0xbe98f273
imul ebx, eax
add ebx, edx
add ebx, edi
add esi, dword [ebp - 0x20]
adc ebx, dword [ebp - 0x34]
add esi, dword [ebp - 0x14]
adc ebx, ecx
mov edi, dword [ebp - 0x18]
xor esi, edi
mov eax, esi
mov ecx, 0xeb382d69
mul ecx
mov ecx, eax
imul eax, esi, 0x9ddfea08
add eax, edx
mov esi, dword [ebp - 0x10]
xor ebx, esi
imul edx, ebx, 0xeb382d69
add edx, eax
xor esi, edx
shr edx, 0xf
xor ecx, edi
xor ecx, edx
mov eax, ecx
mov edx, 0xeb382d69
mul edx
mov edi, 0xeb382d69
imul esi, esi, 0xeb382d69
add esi, edx
imul ecx, ecx, 0x9ddfea08
add esi, ecx
imul ecx, esi, 0xeb382d69
shr esi, 0xf
xor esi, eax
mov eax, esi
mul edi
add edx, ecx
imul ecx, esi, 0x9ddfea08
add edx, ecx
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
mov edi, ebx
cmp ebx, 0x10
jbe 0x40f765
mov esi, dword [ecx]
mov edx, 0xbe98f273
mov eax, esi
mul edx
mov dword [ebp - 0x1c], eax
imul eax, esi, 0xb492b66f
add eax, edx
mov dword [ebp - 0x10], eax
mov esi, dword [ecx + edi - 8]
mov edx, 0x2f90404f
mov eax, esi
mov dword [ebp - 0x38], esi
mul edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], edx
mov ebx, dword [ecx + edi - 0x10]
mov edx, 0x97cb3127
mov eax, ebx
mul edx
mov dword [ebp - 0x2c], eax
imul eax, esi, 0x9ae16a3b
add eax, dword [ebp - 0x20]
imul esi, dword [ecx + edi - 4], 0x2f90404f
add esi, eax
imul eax, ebx, 0xc3a5c85c
add eax, edx
imul ebx, dword [ecx + edi - 0xc], 0x97cb3127
mov edx, edi
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ecx + 0xc]
mov dword [ebp - 0x28], ebx
xor ebx, 0xc949d7c7
mov edi, dword [ecx + 8]
mov dword [ebp - 0x34], edi
xor edi, 0x509e6557
mov eax, edi
shld eax, ebx, 0xc
shrd edi, ebx, 0x14
imul ecx, dword [ecx + 4], 0xbe98f273
mov dword [ebp - 0x20], ecx
add edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x20]
lea ebx, [ecx + ebx]
adc ecx, dword [ebp - 0x20]
add edx, edi
adc ecx, eax
mov edi, edx
sub edi, dword [ebp - 0x14]
sbb ecx, esi
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x34]
sbb ebx, dword [ebp - 0x28]
mov eax, ecx
shld eax, ebx, 0x15
shld ebx, ecx, 0x15
mov edx, esi
mov ecx, dword [ebp - 0x14]
shld esi, ecx, 2
imul ecx, dword [ebp - 0x38], 0xbe41013c
add ecx, ebx
shr edx, 0x1e
add esi, eax
adc ecx, edx
add esi, dword [ebp - 0x2c]
adc ecx, dword [ebp - 0x30]
xor esi, edi
mov ebx, edi
mov edx, 0xeb382d69
mov eax, esi
mul edx
mov edi, eax
imul eax, esi, 0x9ddfea08
add eax, edx
mov edx, dword [ebp - 0x10]
xor ecx, edx
imul ecx, ecx, 0xeb382d69
add ecx, eax
xor edx, ecx
mov esi, edx
shr ecx, 0xf
xor edi, ebx
xor edi, ecx
mov eax, edi
mov ecx, 0xeb382d69
mul ecx
mov ebx, 0xeb382d69
imul esi, esi, 0xeb382d69
add esi, edx
imul ecx, edi, 0x9ddfea08
add esi, ecx
imul ecx, esi, 0xeb382d69
shr esi, 0xf
xor esi, eax
mov eax, esi
mul ebx
jmp 0x40f401
mov eax, dword [edi + ebx - 0x10]
mov dword [ebp - 0x30], eax
add eax, ebx
mov ecx, dword [edi + ebx - 0xc]
mov dword [ebp - 0x38], ecx
adc ecx, 0
mov esi, eax
mov edx, 0x97cb3127
mul edx
mov edi, eax
mov ebx, edx
mov eax, 0xc3a5c85c
imul esi, eax
add ebx, esi
mov eax, 0x97cb3127
imul ecx, eax
add ebx, ecx
mov esi, dword [ebp - 0x40]
add edi, dword [esi]
adc ebx, dword [esi + 4]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x28], ecx
mov eax, edi
add eax, ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x34], ecx
mov edx, ebx
adc edx, ecx
mov ecx, edx
shld ecx, eax, 0xc
mov dword [ebp - 0x10], ecx
shrd edx, eax, 0x14
mov dword [ebp - 0x20], edx
mov eax, ebx
shld eax, edi, 0x1b
mov dword [ebp - 0x2c], eax
mov eax, edi
shld eax, ebx, 0x1b
mov dword [ebp - 0x1c], eax
add edi, dword [esi + 8]
adc ebx, dword [esi + 0xc]
mov eax, edi
shld eax, ebx, 0x19
mov dword [ebp - 0x14], eax
mov edx, ebx
shld edx, edi, 0x19
mov ecx, dword [esi + 0x10]
add edi, ecx
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x3c], eax
adc ebx, eax
mov eax, edi
shld eax, ebx, 1
mov dword [ebp - 0x24], eax
mov eax, ebx
shld eax, edi, 1
mov dword [ebp - 0x48], eax
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x14]
adc eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x20]
add dword [ebp - 0x1c], edx
adc eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x48]
add dword [ebp - 0x1c], edx
adc eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add ecx, dword [esi + eax - 0x20]
mov edx, dword [ebp - 0x3c]
adc edx, dword [esi + eax - 0x1c]
mov esi, dword [ebp - 0x40]
mov esi, dword [esi + eax - 8]
mov dword [ebp - 0x2c], esi
mov eax, ecx
add eax, esi
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
mov esi, dword [esi + eax - 4]
mov dword [ebp - 0x10], esi
mov esi, edx
adc esi, dword [ebp - 0x10]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
shld esi, eax, 0xc
mov dword [ebp - 0x3c], esi
shrd dword [ebp - 0x20], eax, 0x14
mov eax, edx
shld eax, ecx, 0x1b
mov dword [ebp - 0x24], eax
mov eax, ecx
shld eax, edx, 0x1b
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x18]
add ecx, dword [eax + esi - 0x18]
adc edx, dword [eax + esi - 0x14]
mov eax, ecx
shld eax, edx, 0x19
mov dword [ebp - 0x18], eax
mov esi, edx
shld esi, ecx, 0x19
add ecx, dword [ebp - 0x30]
adc edx, dword [ebp - 0x38]
add dword [ebp - 0x2c], ecx
adc dword [ebp - 0x10], edx
mov eax, ecx
shld eax, edx, 1
shld edx, ecx, 1
add edi, dword [ebp - 0x28]
adc ebx, dword [ebp - 0x34]
add edi, dword [ebp - 0x48]
adc ebx, dword [ebp - 0x24]
add edi, dword [ebp - 0x20]
adc ebx, dword [ebp - 0x3c]
add edi, esi
adc ebx, dword [ebp - 0x18]
add edi, edx
adc ebx, eax
mov ecx, 0x2f90404f
mov eax, edi
mul ecx
mov dword [ebp - 0x18], eax
imul eax, edi, 0x9ae16a3b
add eax, edx
imul ecx, ebx, 0x2f90404f
add ecx, eax
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
adc eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov esi, edx
mov eax, edx
mov ebx, 0xc3a5c85c
imul esi, ebx
mov edx, 0x97cb3127
mul edx
mov edi, edx
add edi, esi
mov edx, 0x97cb3127
mov esi, dword [ebp - 0x10]
imul esi, edx
add edi, esi
add eax, dword [ebp - 0x18]
adc edi, ecx
mov ecx, edi
shr ecx, 0xf
xor eax, ecx
imul ebx, eax
mul edx
mov ecx, 0x97cb3127
imul edi, ecx
add edi, edx
add edi, ebx
add eax, dword [ebp - 0x1c]
adc edi, dword [ebp - 0x14]
imul ecx, edi, 0x2f90404f
shr edi, 0xf
xor edi, eax
mov eax, edi
mov edx, 0x2f90404f
mul edx
add edx, ecx
imul ecx, edi, 0x9ae16a3b
jmp 0x40f409
mov edx, edi
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.004323d0