Function at 0x40d020
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x300
mov eax, dword [0x43c3d0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2e4], eax
lea ebx, [ebp - 0x27e]
mov dword [ebp - 0x2d8], 0x10
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x300], ecx
mov dword [ebp - 0x2c8], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x2b8], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2c0], ecx
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x2dc], edx
mov dword [ebp - 0x2ac], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x2bc], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x29c], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x2b0], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x2a4], edx
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x2c4], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x2fc], edx
mov dword [ebp - 0x294], edx
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x2b4], ecx
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x2e0], edx
mov dword [ebp - 0x290], edx
mov edx, dword [eax + 0x34]
mov dword [ebp - 0x2e8], edx
mov dword [ebp - 0x2a0], edx
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x28c], ecx
lea ecx, [ebp - 0x276]
mov dword [ebp - 0x298], eax
xor eax, eax
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x288], eax
mov eax, dword [ebp + 0xc]
sub ebx, eax
sub ecx, eax
mov dword [ebp - 0x2f0], edx
mov dword [ebp - 0x2d4], ecx
lea ecx, [ebp - 0x26e]
sub ecx, eax
mov dword [ebp - 0x2a8], edx
lea edi, [eax + 2]
mov dword [ebp - 0x2d0], ecx
movzx eax, byte [edi - 2]
cdq
mov ecx, eax
mov esi, edx
shld esi, ecx, 8
movzx eax, byte [edi - 1]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 1]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 2]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
movzx eax, byte [edi + 3]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 4]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 5]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov eax, dword [ebp - 0x288]
mov dword [ebp + eax*8 - 0x284], ecx
mov dword [ebp + eax*8 - 0x280], esi
movzx eax, byte [edi + 6]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 7]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 8]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 9]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0xa]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0xb]
shld esi, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xc]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xd]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
movzx eax, byte [edi + 0xe]
mov dword [edi + ebx], ecx
cdq
mov ecx, eax
mov dword [edi + ebx + 4], esi
movzx eax, byte [edi + 0xf]
mov esi, edx
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x10]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x11]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x12]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x13]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x14]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x15]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov eax, dword [ebp - 0x2d4]
mov dword [edi + eax], ecx
mov dword [edi + eax + 4], esi
movzx eax, byte [edi + 0x16]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0x17]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x18]
shld esi, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or esi, edx
movzx eax, byte [edi + 0x19]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x1a]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x1b]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x1c]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x1d]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov eax, dword [ebp - 0x2d0]
mov dword [edi + eax], ecx
lea edi, [edi + 0x20]
mov dword [edi + eax - 0x1c], esi
mov eax, dword [ebp - 0x288]
add eax, 4
mov dword [ebp - 0x288], eax
cmp eax, 0x10
jl 0x40d147
lea edx, [ebp - 0x214]
mov dword [ebp - 0x288], edx
mov esi, dword [edx - 0x68]
xor ebx, ebx
mov eax, esi
mov ecx, esi
shl eax, 0x18
xor edi, edi
mov eax, dword [edx - 0x64]
xor edx, edx
shrd ecx, eax, 8
shr eax, 8
or ebx, ecx
mov eax, esi
mov ecx, esi
shl eax, 0x1f
mov eax, dword [ebp - 0x288]
mov eax, dword [eax - 0x64]
shrd ecx, eax, 1
or edx, ecx
shr eax, 1
xor ebx, edx
mov eax, esi
mov edx, dword [ebp - 0x288]
mov ecx, dword [edx - 0x64]
shrd eax, ecx, 7
mov esi, dword [edx + 4]
xor ebx, eax
shr ecx, 7
mov eax, dword [edx + 4]
xor edi, ecx
mov ecx, dword [edx]
shld eax, ecx, 3
shr esi, 0x1d
shl ecx, 3
or esi, ecx
mov ecx, dword [edx]
mov eax, ecx
xor edx, edx
shl eax, 0xd
mov eax, dword [ebp - 0x288]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x13
or edx, ecx
shr eax, 0x13
xor esi, edx
xor eax, eax
mov dword [ebp - 0x2d4], esi
mov esi, dword [ebp - 0x288]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [ebp - 0x2d4]
shrd edx, ecx, 6
shr ecx, 6
xor esi, edx
mov edx, dword [ebp - 0x288]
xor eax, ecx
add ebx, esi
adc edi, eax
add ebx, dword [edx - 0x70]
mov esi, dword [edx - 0x60]
mov eax, esi
adc edi, dword [edx - 0x6c]
mov ecx, esi
add ebx, dword [edx - 0x28]
mov dword [edx + 0x10], ebx
adc edi, dword [edx - 0x24]
xor ebx, ebx
shl eax, 0x18
mov eax, dword [edx - 0x5c]
shrd ecx, eax, 8
mov dword [edx + 0x14], edi
xor edx, edx
shr eax, 8
or ebx, ecx
mov eax, esi
mov ecx, esi
shl eax, 0x1f
mov eax, dword [ebp - 0x288]
mov eax, dword [eax - 0x5c]
shrd ecx, eax, 1
shr eax, 1
or edx, ecx
xor ebx, edx
mov eax, esi
mov edx, dword [ebp - 0x288]
xor edi, edi
mov ecx, dword [edx - 0x5c]
shrd eax, ecx, 7
mov esi, dword [edx + 0xc]
xor ebx, eax
shr ecx, 7
mov eax, dword [edx + 0xc]
xor edi, ecx
mov ecx, dword [edx + 8]
shld eax, ecx, 3
shr esi, 0x1d
shl ecx, 3
or esi, ecx
mov ecx, dword [edx + 8]
mov eax, ecx
xor edx, edx
shl eax, 0xd
mov eax, dword [ebp - 0x288]
mov eax, dword [eax + 0xc]
shrd ecx, eax, 0x13
or edx, ecx
shr eax, 0x13
xor esi, edx
xor eax, eax
mov dword [ebp - 0x2d4], esi
mov esi, dword [ebp - 0x288]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov esi, dword [ebp - 0x2d4]
shrd edx, ecx, 6
shr ecx, 6
xor esi, edx
xor eax, ecx
add ebx, esi
adc edi, eax
mov eax, dword [ebp - 0x288]
add ebx, dword [eax - 0x20]
mov esi, dword [eax + 0x14]
adc edi, dword [eax - 0x1c]
add ebx, dword [eax - 0x68]
mov dword [eax + 0x18], ebx
adc edi, dword [eax - 0x64]
xor edx, edx
mov ebx, dword [eax + 0x10]
mov ecx, ebx
mov dword [eax + 0x1c], edi
add eax, 0x20
mov dword [ebp - 0x2d4], eax
mov edi, esi
mov eax, esi
shr edi, 0x1d
shld eax, ecx, 3
mov eax, ebx
shl eax, 0xd
shl ecx, 3
mov eax, esi
or edi, ecx
mov ecx, ebx
shrd ecx, eax, 0x13
shrd ebx, esi, 6
or edx, ecx
shr eax, 0x13
xor edi, edx
shr esi, 6
mov edx, dword [ebp - 0x288]
mov dword [ebp - 0x2d0], edi
xor edi, edi
xor dword [ebp - 0x2d0], ebx
xor edi, esi
xor esi, esi
mov ebx, dword [edx - 0x58]
mov eax, ebx
shl eax, 0x18
mov ecx, ebx
mov eax, dword [edx - 0x54]
shrd ecx, eax, 8
shr eax, 8
or esi, ecx
mov eax, ebx
xor edx, edx
shl eax, 0x1f
mov ecx, ebx
mov eax, dword [ebp - 0x288]
mov eax, dword [eax - 0x54]
shrd ecx, eax, 1
or edx, ecx
shr eax, 1
mov ecx, dword [ebp - 0x288]
xor esi, edx
xor edx, edx
mov eax, ebx
mov ecx, dword [ecx - 0x54]
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
mov eax, dword [ebp - 0x2d0]
xor edx, ecx
add eax, esi
mov ecx, dword [ebp - 0x2d4]
adc edi, edx
mov edx, dword [ebp - 0x288]
add eax, dword [edx - 0x18]
mov ebx, dword [edx + 0x18]
adc edi, dword [edx - 0x14]
add eax, dword [edx - 0x60]
mov esi, dword [edx + 0x1c]
adc edi, dword [edx - 0x5c]
xor edx, edx
mov dword [ecx], eax
mov eax, esi
mov dword [ecx + 4], edi
mov ecx, ebx
shld eax, ecx, 3
mov edi, esi
mov eax, ebx
shl eax, 0xd
shl ecx, 3
mov eax, esi
shr edi, 0x1d
or edi, ecx
mov ecx, ebx
shrd ecx, eax, 0x13
shrd ebx, esi, 6
shr eax, 0x13
or edx, ecx
mov eax, dword [ebp - 0x288]
xor edi, edx
mov dword [ebp - 0x2d0], edi
xor edi, edi
xor dword [ebp - 0x2d0], ebx
shr esi, 6
mov edx, dword [eax - 0x50]
xor edi, esi
mov eax, edx
mov ecx, edx
shl eax, 0x18
xor esi, esi
mov eax, dword [ebp - 0x288]
mov ebx, dword [eax - 0x4c]
mov eax, ebx
shrd ecx, eax, 8
shr eax, 8
or esi, ecx
mov eax, edx
xor edx, edx
shl eax, 0x1f
mov eax, dword [ebp - 0x288]
mov ecx, dword [eax - 0x50]
mov eax, ebx
shrd ecx, eax, 1
or edx, ecx
shr eax, 1
xor esi, edx
xor eax, eax
mov edx, dword [ebp - 0x288]
mov ecx, dword [edx - 0x50]
shrd ecx, ebx, 7
shr ebx, 7
xor esi, ecx
mov ecx, dword [ebp - 0x2d0]
xor eax, ebx
add ecx, esi
adc edi, eax
add ecx, dword [edx - 0x10]
adc edi, dword [edx - 0xc]
add ecx, dword [edx - 0x58]
mov dword [edx + 0x28], ecx
adc edi, dword [edx - 0x54]
dec dword [ebp - 0x2d8]
mov dword [edx + 0x2c], edi
mov edx, dword [ebp - 0x2d4]
mov dword [ebp - 0x288], edx
jne 0x40d386
mov esi, dword [ebp - 0x2c8]
mov edi, dword [ebp - 0x2b0]
xor edx, edx
mov eax, dword [ebp - 0x290]
mov ecx, edi
mov ebx, eax
shld eax, ecx, 0x17
shr ebx, 9
mov eax, edi
shl eax, 0xe
mov eax, dword [ebp - 0x290]
shl ecx, 0x17
or ebx, ecx
mov ecx, edi
shrd ecx, eax, 0x12
or edx, ecx
shr eax, 0x12
xor ebx, edx
mov eax, edi
shl eax, 0x12
xor edx, edx
mov eax, dword [ebp - 0x290]
mov ecx, edi
shrd ecx, eax, 0xe
xor edi, edi
or edx, ecx
shr eax, 0xe
mov ecx, dword [ebp - 0x2b4]
xor ebx, edx
xor ecx, dword [ebp - 0x2c4]
and ecx, dword [ebp - 0x2b0]
xor ecx, dword [ebp - 0x2b4]
mov eax, dword [ebp - 0x2a8]
xor eax, dword [ebp - 0x2a0]
and eax, dword [ebp - 0x290]
xor eax, dword [ebp - 0x2a8]
add ebx, ecx
mov ecx, esi
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [eax + 0x431af0]
adc edi, dword [eax + 0x431af4]
add ebx, dword [ebp + eax - 0x284]
adc edi, dword [ebp + eax - 0x280]
mov eax, esi
add ebx, dword [ebp - 0x28c]
adc edi, dword [ebp - 0x298]
add dword [ebp - 0x2bc], ebx
adc dword [ebp - 0x294], edi
xor edx, edx
shl eax, 4
mov eax, dword [ebp - 0x2ac]
shrd ecx, eax, 0x1c
or edx, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x2ac]
mov ecx, esi
mov dword [ebp - 0x28c], edx
mov edx, eax
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x2ac]
shr edx, 2
shl ecx, 0x1e
or edx, ecx
mov ecx, esi
xor dword [ebp - 0x28c], edx
mov edx, eax
shld eax, ecx, 0x19
mov eax, dword [ebp - 0x29c]
shr edx, 7
shl ecx, 0x19
or edx, ecx
mov ecx, dword [ebp - 0x2b8]
xor dword [ebp - 0x28c], edx
mov esi, ecx
mov edx, dword [ebp - 0x29c]
or esi, dword [ebp - 0x2c8]
or edx, dword [ebp - 0x2ac]
and esi, dword [ebp - 0x2c0]
and edx, dword [ebp - 0x2a4]
and ecx, dword [ebp - 0x2c8]
and eax, dword [ebp - 0x2ac]
or edx, eax
or esi, ecx
mov eax, dword [ebp - 0x28c]
add eax, esi
mov esi, dword [ebp - 0x2bc]
push 0
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x28c], eax
adc ecx, edi
mov edi, dword [ebp - 0x294]
mov dword [ebp - 0x298], ecx
mov eax, edi
mov ecx, esi
mov ebx, edi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl eax, 0xe
xor edx, edx
shl ecx, 0x17
mov eax, edi
or ebx, ecx
mov ecx, esi
shrd ecx, eax, 0x12
shr eax, 0x12
or edx, ecx
xor ebx, edx
mov eax, esi
shl eax, 0x12
xor edx, edx
mov eax, edi
mov ecx, esi
shrd ecx, eax, 0xe
xor edi, edi
or edx, ecx
shr eax, 0xe
mov ecx, dword [ebp - 0x2c4]
xor ebx, edx
xor ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x2a0]
and ecx, esi
xor eax, dword [ebp - 0x290]
and eax, dword [ebp - 0x294]
xor eax, dword [ebp - 0x2a0]
xor ecx, dword [ebp - 0x2c4]
add ebx, ecx
mov ecx, dword [ebp - 0x28c]
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x27c]
adc edi, dword [ebp + eax - 0x278]
add ebx, dword [eax + 0x431af8]
adc edi, dword [eax + 0x431afc]
mov eax, ecx
add ebx, dword [ebp - 0x2b4]
adc edi, dword [ebp - 0x2a8]
add dword [ebp - 0x2c0], ebx
adc dword [ebp - 0x2a4], edi
xor esi, esi
shl eax, 4
mov eax, dword [ebp - 0x298]
shrd ecx, eax, 0x1c
or esi, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x298]
mov edx, eax
mov ecx, dword [ebp - 0x28c]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x298]
shl ecx, 0x1e
shr edx, 2
or edx, ecx
mov ecx, dword [ebp - 0x28c]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
shr edx, 7
shl ecx, 0x19
or edx, ecx
mov ecx, dword [ebp - 0x28c]
xor esi, edx
mov edx, dword [ebp - 0x298]
or edx, dword [ebp - 0x2ac]
and edx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x298]
and eax, dword [ebp - 0x2ac]
or edx, eax
mov dword [ebp - 0x2b4], esi
mov eax, dword [ebp - 0x2b4]
mov esi, ecx
and ecx, dword [ebp - 0x2c8]
or esi, dword [ebp - 0x2c8]
and esi, dword [ebp - 0x2b8]
or esi, ecx
add eax, esi
mov esi, dword [ebp - 0x2c0]
push 0
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x2b4], eax
adc ecx, edi
mov edi, dword [ebp - 0x2a4]
mov dword [ebp - 0x2a8], ecx
mov eax, edi
mov ebx, edi
mov ecx, esi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl eax, 0xe
xor edx, edx
shl ecx, 0x17
mov eax, edi
or ebx, ecx
mov ecx, esi
shrd ecx, eax, 0x12
shr eax, 0x12
or edx, ecx
xor ebx, edx
mov eax, esi
shl eax, 0x12
xor edx, edx
mov eax, edi
mov ecx, esi
shrd ecx, eax, 0xe
xor edi, edi
shr eax, 0xe
or edx, ecx
mov ecx, dword [ebp - 0x2b0]
xor ebx, edx
xor ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x290]
and ecx, esi
xor eax, dword [ebp - 0x294]
and eax, dword [ebp - 0x2a4]
xor eax, dword [ebp - 0x290]
xor ecx, dword [ebp - 0x2b0]
add ebx, ecx
mov ecx, dword [ebp - 0x2b4]
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x274]
adc edi, dword [ebp + eax - 0x270]
add ebx, dword [eax + 0x431b00]
adc edi, dword [eax + 0x431b04]
mov eax, ecx
add ebx, dword [ebp - 0x2c4]
adc edi, dword [ebp - 0x2a0]
add dword [ebp - 0x2b8], ebx
adc dword [ebp - 0x29c], edi
xor esi, esi
shl eax, 4
mov eax, dword [ebp - 0x2a8]
shrd ecx, eax, 0x1c
shr eax, 0x1c
or esi, ecx
mov eax, dword [ebp - 0x2a8]
mov edx, eax
shr edx, 2
mov ecx, dword [ebp - 0x2b4]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x2a8]
shl ecx, 0x1e
or edx, ecx
mov ecx, dword [ebp - 0x2b4]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
mov eax, dword [ebp - 0x298]
and eax, dword [ebp - 0x2a8]
shl ecx, 0x19
shr edx, 7
or edx, ecx
mov ecx, dword [ebp - 0x28c]
xor esi, edx
mov edx, dword [ebp - 0x298]
or edx, dword [ebp - 0x2a8]
and edx, dword [ebp - 0x2ac]
or edx, eax
mov dword [ebp - 0x2c4], esi
mov eax, dword [ebp - 0x2c4]
mov esi, ecx
and ecx, dword [ebp - 0x2b4]
or esi, dword [ebp - 0x2b4]
and esi, dword [ebp - 0x2c8]
or esi, ecx
add eax, esi
mov esi, dword [ebp - 0x2b8]
push 0
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x2c4], eax
adc ecx, edi
mov edi, dword [ebp - 0x29c]
mov dword [ebp - 0x2a0], ecx
mov eax, edi
mov ebx, edi
mov ecx, esi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl eax, 0xe
xor edx, edx
shl ecx, 0x17
mov eax, edi
or ebx, ecx
mov ecx, esi
shrd ecx, eax, 0x12
shr eax, 0x12
or edx, ecx
xor ebx, edx
mov eax, esi
shl eax, 0x12
xor edx, edx
mov eax, edi
mov ecx, esi
shrd ecx, eax, 0xe
xor edi, edi
shr eax, 0xe
or edx, ecx
mov ecx, dword [ebp - 0x2bc]
xor ebx, edx
xor ecx, dword [ebp - 0x2c0]
mov eax, dword [ebp - 0x294]
and ecx, esi
xor eax, dword [ebp - 0x2a4]
and eax, dword [ebp - 0x29c]
xor eax, dword [ebp - 0x294]
xor ecx, dword [ebp - 0x2bc]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x26c]
adc edi, dword [ebp + eax - 0x268]
add ebx, dword [eax + 0x431b08]
adc edi, dword [eax + 0x431b0c]
add ebx, dword [ebp - 0x2b0]
adc edi, dword [ebp - 0x290]
add dword [ebp - 0x2c8], ebx
adc dword [ebp - 0x2ac], edi
xor esi, esi
mov ecx, dword [ebp - 0x2c4]
mov eax, ecx
shl eax, 4
mov eax, dword [ebp - 0x2a0]
shrd ecx, eax, 0x1c
push 0
or esi, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x2a0]
mov edx, eax
mov ecx, dword [ebp - 0x2c4]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x2a0]
shl ecx, 0x1e
shr edx, 2
or edx, ecx
mov ecx, dword [ebp - 0x2c4]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
mov eax, dword [ebp - 0x2a8]
and eax, dword [ebp - 0x2a0]
shl ecx, 0x19
shr edx, 7
or edx, ecx
mov ecx, dword [ebp - 0x2b4]
xor esi, edx
mov edx, dword [ebp - 0x2a8]
or edx, dword [ebp - 0x2a0]
and edx, dword [ebp - 0x298]
or edx, eax
mov dword [ebp - 0x2b0], esi
mov eax, dword [ebp - 0x2b0]
mov esi, ecx
and ecx, dword [ebp - 0x2c4]
or esi, dword [ebp - 0x2c4]
and esi, dword [ebp - 0x28c]
or esi, ecx
add eax, esi
mov esi, dword [ebp - 0x2c8]
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x2b0], eax
adc ecx, edi
mov edi, dword [ebp - 0x2ac]
mov dword [ebp - 0x290], ecx
mov eax, edi
mov ecx, esi
mov ebx, edi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl eax, 0xe
xor edx, edx
shl ecx, 0x17
mov eax, edi
or ebx, ecx
mov ecx, esi
shrd ecx, eax, 0x12
shr eax, 0x12
or edx, ecx
mov eax, esi
xor ebx, edx
shl eax, 0x12
mov ecx, esi
mov eax, edi
xor edx, edx
shrd ecx, eax, 0xe
xor edi, edi
or edx, ecx
shr eax, 0xe
mov ecx, dword [ebp - 0x2c0]
xor ebx, edx
xor ecx, dword [ebp - 0x2b8]
mov eax, dword [ebp - 0x2a4]
and ecx, esi
xor eax, dword [ebp - 0x29c]
and eax, dword [ebp - 0x2ac]
xor eax, dword [ebp - 0x2a4]
xor ecx, dword [ebp - 0x2c0]
add ebx, ecx
mov ecx, dword [ebp - 0x2b0]
push 0
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x264]
adc edi, dword [ebp + eax - 0x260]
add ebx, dword [eax + 0x431b10]
adc edi, dword [eax + 0x431b14]
mov eax, ecx
add ebx, dword [ebp - 0x2bc]
adc edi, dword [ebp - 0x294]
add dword [ebp - 0x28c], ebx
adc dword [ebp - 0x298], edi
xor esi, esi
shl eax, 4
mov eax, dword [ebp - 0x290]
shrd ecx, eax, 0x1c
or esi, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x290]
mov edx, eax
mov ecx, dword [ebp - 0x2b0]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x290]
shl ecx, 0x1e
shr edx, 2
or edx, ecx
mov ecx, dword [ebp - 0x2b0]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
mov eax, dword [ebp - 0x2a0]
and eax, dword [ebp - 0x290]
shl ecx, 0x19
shr edx, 7
or edx, ecx
mov ecx, dword [ebp - 0x2c4]
xor esi, edx
mov edx, dword [ebp - 0x2a0]
or edx, dword [ebp - 0x290]
and edx, dword [ebp - 0x2a8]
or edx, eax
mov dword [ebp - 0x2bc], esi
mov eax, dword [ebp - 0x2bc]
mov esi, ecx
and ecx, dword [ebp - 0x2b0]
or esi, dword [ebp - 0x2b0]
and esi, dword [ebp - 0x2b4]
or esi, ecx
add eax, esi
mov esi, dword [ebp - 0x28c]
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x2bc], eax
adc ecx, edi
mov edi, dword [ebp - 0x298]
mov dword [ebp - 0x294], ecx
mov eax, edi
mov ecx, esi
mov ebx, edi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl ecx, 0x17
xor edx, edx
shl eax, 0xe
or ebx, ecx
mov ecx, esi
mov eax, edi
shrd ecx, eax, 0x12
shr eax, 0x12
or edx, ecx
mov eax, esi
xor ebx, edx
shl eax, 0x12
mov ecx, esi
xor edx, edx
mov eax, edi
xor edi, edi
shrd ecx, eax, 0xe
push 0
or edx, ecx
shr eax, 0xe
mov ecx, dword [ebp - 0x2b8]
xor ebx, edx
xor ecx, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x29c]
and ecx, esi
xor eax, dword [ebp - 0x2ac]
and eax, dword [ebp - 0x298]
xor ecx, dword [ebp - 0x2b8]
xor eax, dword [ebp - 0x29c]
add ebx, ecx
mov ecx, dword [ebp - 0x2bc]
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x25c]
adc edi, dword [ebp + eax - 0x258]
add ebx, dword [eax + 0x431b18]
adc edi, dword [eax + 0x431b1c]
mov eax, ecx
add ebx, dword [ebp - 0x2c0]
adc edi, dword [ebp - 0x2a4]
add dword [ebp - 0x2b4], ebx
adc dword [ebp - 0x2a8], edi
xor esi, esi
shl eax, 4
mov eax, dword [ebp - 0x294]
shrd ecx, eax, 0x1c
or esi, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x294]
mov edx, eax
mov ecx, dword [ebp - 0x2bc]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x294]
shl ecx, 0x1e
shr edx, 2
or edx, ecx
mov ecx, dword [ebp - 0x2bc]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
mov eax, dword [ebp - 0x290]
and eax, dword [ebp - 0x294]
shl ecx, 0x19
shr edx, 7
or edx, ecx
mov ecx, dword [ebp - 0x2b0]
xor esi, edx
mov edx, dword [ebp - 0x290]
or edx, dword [ebp - 0x294]
and edx, dword [ebp - 0x2a0]
mov dword [ebp - 0x2c0], esi
or edx, eax
mov eax, dword [ebp - 0x2c0]
mov esi, ecx
and ecx, dword [ebp - 0x2bc]
or esi, dword [ebp - 0x2bc]
and esi, dword [ebp - 0x2c4]
or esi, ecx
add eax, esi
mov esi, dword [ebp - 0x2b4]
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x2c0], eax
adc ecx, edi
mov edi, dword [ebp - 0x2a8]
mov dword [ebp - 0x2a4], ecx
mov eax, edi
mov ecx, esi
mov ebx, edi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl ecx, 0x17
or ebx, ecx
shl eax, 0xe
xor edx, edx
mov ecx, esi
mov eax, edi
shrd ecx, eax, 0x12
push 0
or edx, ecx
shr eax, 0x12
xor ebx, edx
mov eax, esi
shl eax, 0x12
xor edx, edx
mov ecx, esi
mov eax, edi
shrd ecx, eax, 0xe
xor edi, edi
or edx, ecx
shr eax, 0xe
mov ecx, dword [ebp - 0x28c]
xor ebx, edx
xor ecx, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x298]
and ecx, esi
xor eax, dword [ebp - 0x2ac]
and eax, dword [ebp - 0x2a8]
xor eax, dword [ebp - 0x2ac]
xor ecx, dword [ebp - 0x2c8]
add ebx, ecx
mov ecx, dword [ebp - 0x2c0]
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x254]
adc edi, dword [ebp + eax - 0x250]
add ebx, dword [eax + 0x431b20]
adc edi, dword [eax + 0x431b24]
mov eax, ecx
add ebx, dword [ebp - 0x2b8]
adc edi, dword [ebp - 0x29c]
add dword [ebp - 0x2c4], ebx
adc dword [ebp - 0x2a0], edi
xor esi, esi
shl eax, 4
mov eax, dword [ebp - 0x2a4]
shrd ecx, eax, 0x1c
or esi, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x2a4]
mov edx, eax
mov ecx, dword [ebp - 0x2c0]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x2a4]
shr edx, 2
shl ecx, 0x1e
or edx, ecx
mov ecx, dword [ebp - 0x2c0]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
mov eax, dword [ebp - 0x294]
and eax, dword [ebp - 0x2a4]
shr edx, 7
shl ecx, 0x19
or edx, ecx
mov ecx, dword [ebp - 0x2bc]
xor esi, edx
mov edx, dword [ebp - 0x294]
or edx, dword [ebp - 0x2a4]
and edx, dword [ebp - 0x290]
mov dword [ebp - 0x2b8], esi
or edx, eax
mov eax, dword [ebp - 0x2b8]
mov esi, ecx
or esi, dword [ebp - 0x2c0]
and ecx, dword [ebp - 0x2c0]
and esi, dword [ebp - 0x2b0]
or esi, ecx
add eax, esi
pop ecx
adc ecx, edx
add eax, ebx
mov dword [ebp - 0x2b8], eax
adc ecx, edi
mov esi, dword [ebp - 0x2c4]
mov edi, dword [ebp - 0x2a0]
xor edx, edx
mov dword [ebp - 0x29c], ecx
mov eax, edi
mov ecx, esi
mov ebx, edi
shld eax, ecx, 0x17
shr ebx, 9
mov eax, esi
shl eax, 0xe
shl ecx, 0x17
mov eax, edi
or ebx, ecx
mov ecx, esi
shrd ecx, eax, 0x12
or edx, ecx
shr eax, 0x12
xor ebx, edx
mov eax, esi
shl eax, 0x12
xor edx, edx
mov ecx, esi
mov eax, edi
shrd ecx, eax, 0xe
xor edi, edi
or edx, ecx
shr eax, 0xe
mov ecx, dword [ebp - 0x28c]
xor ebx, edx
xor ecx, dword [ebp - 0x2b4]
mov eax, dword [ebp - 0x298]
and ecx, esi
xor eax, dword [ebp - 0x2a8]
and eax, dword [ebp - 0x2a0]
xor eax, dword [ebp - 0x298]
xor ecx, dword [ebp - 0x28c]
add ebx, ecx
mov ecx, dword [ebp - 0x2b8]
adc edi, eax
mov eax, dword [ebp - 0x2cc]
add ebx, dword [ebp + eax - 0x24c]
adc edi, dword [ebp + eax - 0x248]
add ebx, dword [eax + 0x431b28]
adc edi, dword [eax + 0x431b2c]
mov eax, ecx
add ebx, dword [ebp - 0x2c8]
adc edi, dword [ebp - 0x2ac]
add dword [ebp - 0x2b0], ebx
adc dword [ebp - 0x290], edi
xor esi, esi
shl eax, 4
mov eax, dword [ebp - 0x29c]
shrd ecx, eax, 0x1c
or esi, ecx
shr eax, 0x1c
mov eax, dword [ebp - 0x29c]
mov edx, eax
mov ecx, dword [ebp - 0x2b8]
shld eax, ecx, 0x1e
mov eax, dword [ebp - 0x29c]
shr edx, 2
shl ecx, 0x1e
or edx, ecx
mov ecx, dword [ebp - 0x2b8]
xor esi, edx
mov edx, eax
shld eax, ecx, 0x19
shr edx, 7
shl ecx, 0x19
or edx, ecx
mov ecx, dword [ebp - 0x2c0]
xor esi, edx
mov edx, dword [ebp - 0x2a4]
or edx, dword [ebp - 0x29c]
mov dword [ebp - 0x2c8], esi
mov esi, ecx
or esi, dword [ebp - 0x2b8]
and esi, dword [ebp - 0x2bc]
and edx, dword [ebp - 0x294]
and ecx, dword [ebp - 0x2b8]
mov eax, dword [ebp - 0x2a4]
or esi, ecx
and eax, dword [ebp - 0x29c]
or edx, eax
add dword [ebp - 0x2c8], esi
mov esi, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x2cc]
push 0
pop ecx
adc ecx, edx
add esi, ebx
mov dword [ebp - 0x2c8], esi
adc ecx, edi
add eax, 0x40
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2cc], eax
cmp eax, 0x280
jl 0x40d6a1
mov eax, dword [ebp - 0x2e4]
add esi, dword [ebp - 0x300]
mov edx, dword [ebp - 0x29c]
adc ecx, dword [ebp - 0x2dc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x2b8]
add dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x2c0]
adc edx, dword [ebp - 0x2f4]
add dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x2bc]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x2a4]
adc edx, dword [ebp - 0x2ec]
add dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x2b0]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x294]
adc edx, dword [ebp - 0x2fc]
add dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x2c4]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x290]
adc edx, dword [ebp - 0x2e0]
add dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x2b4]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x2a0]
adc edx, dword [ebp - 0x2e8]
add dword [eax + 0x38], ecx
mov ecx, dword [ebp - 0x28c]
mov dword [eax + 0x34], edx
mov edx, dword [ebp - 0x2a8]
adc edx, dword [ebp - 0x2f0]
add dword [eax + 0x40], ecx
mov ecx, dword [ebp - 4]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x298]
adc edx, dword [ebp - 0x2f8]
xor ecx, ebp
pop edi
mov dword [eax + 8], esi
pop esi
mov dword [eax + 0x44], edx
pop ebx
call fcn.004225c9
mov esp, ebp
pop ebp
ret