Function at 0x415d86
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x300
push ebx
push esi
push edi
mov ebx, dword [esp + 0x310]
xor edi, edi
lea ecx, [ebx + edi*8]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [esp + edi*8 + 0x2b0], eax
mov dword [esp + edi*8 + 0x2b4], edx
inc edi
cmp edi, 8
jb 0x415d98
mov dword [esp + 0x310], ebx
xor edi, edi
mov dword [esp + 0x308], edi
cmp byte [0x4661b8], 1
jne 0x415e12
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x314]
lea edi, [esi + ebx*8]
mov dword [esp + 0x300], edi
push 8
push dword [esp + 0x304]
lea ecx, [esp + 0x2f8]
push ecx
call fcn.0045a4e0
add esp, 0xc
mov edx, dword [esp + 0x2f4]
mov eax, dword [esp + 0x2f0]
jmp 0x415f67
mov ebx, dword [esp + 0x308]
mov esi, dword [esp + 0x314]
lea edi, [esi + ebx*8]
mov dword [esp + 0x304], edi
push 8
push dword [esp + 0x308]
lea ecx, [esp + 0x300]
push ecx
call fcn.0045a4e0
add esp, 0xc
mov eax, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2fc]
and edx, 0xff000000
xor eax, eax
shr edx, 0x18
mov eax, edx
xor edx, edx
push eax
push edx
mov ebx, dword [esp + 0x300]
mov edx, dword [esp + 0x304]
and edx, 0xff0000
xor ebx, ebx
shr edx, 8
mov ebx, edx
xor edx, edx
mov ecx, edx
push edx
push ebx
mov esi, dword [esp + 0x308]
mov edx, dword [esp + 0x30c]
xor esi, esi
and edx, 0xff00
shrd esi, edx, 0x18
shr edx, 0x18
push edx
mov edi, dword [esp + 0x30c]
mov edx, dword [esp + 0x310]
xor edi, edi
and edx, 0xff
shrd edi, edx, 8
shr edx, 8
mov ecx, edx
push edx
mov eax, dword [esp + 0x310]
mov edx, dword [esp + 0x314]
and eax, 0xff000000
xor edx, edx
shld edx, eax, 8
shl eax, 8
push eax
push edx
mov eax, dword [esp + 0x318]
mov edx, dword [esp + 0x31c]
and eax, 0xff0000
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov ecx, edx
push ecx
mov ebx, eax
push ebx
mov eax, dword [esp + 0x320]
mov edx, dword [esp + 0x324]
and eax, 0xff
xor edx, edx
shl eax, 0x18
mov edx, eax
xor eax, eax
push eax
push edx
mov eax, dword [esp + 0x328]
mov edx, dword [esp + 0x32c]
and eax, 0xff00
xor edx, edx
shl eax, 8
mov edx, eax
xor eax, eax
mov ecx, edx
pop edx
mov ebx, eax
or edx, ecx
pop eax
or eax, ebx
pop ebx
or ebx, eax
pop ecx
or ecx, edx
pop edx
pop eax
or edx, ecx
or eax, ebx
or edi, eax
pop ecx
or ecx, edx
or esi, edi
pop edx
or edx, ecx
pop ebx
or ebx, esi
pop ecx
or ecx, edx
pop edx
or edx, ecx
pop eax
or eax, ebx
mov esi, dword [esp + 0x308]
inc dword [esp + 0x308]
mov dword [esp + esi*8 + 0x30], eax
mov dword [esp + esi*8 + 0x34], edx
cmp dword [esp + 0x308], 0x10
jb 0x415dc5
cmp dword [esp + 0x308], 0x50
jge 0x4160bd
mov edi, dword [esp + 0x308]
mov eax, dword [esp + edi*8 + 0x20]
mov edx, dword [esp + edi*8 + 0x24]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
shrd eax, edx, 6
shr edx, 6
mov ebx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
shrd ebx, edx, 0x13
shr edx, 0x13
mov ecx, edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
shl esi, 0xd
mov edx, esi
xor esi, esi
or ecx, edx
push ecx
or ebx, esi
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
shr edx, 0x1d
mov esi, edx
xor edx, edx
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add edi, edi
rcl ecx, 1
add edi, edi
rcl ecx, 1
add edi, edi
rcl ecx, 1
or edx, ecx
or esi, edi
pop ecx
xor ecx, edx
xor ebx, esi
pop edx
xor eax, ebx
mov ebx, dword [esp + 0x308]
xor edx, ecx
add eax, dword [esp + ebx*8 - 8]
adc edx, dword [esp + ebx*8 - 4]
push eax
push edx
mov edx, dword [esp + ebx*8 - 0x3c]
mov esi, dword [esp + ebx*8 - 0x40]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
shrd esi, edx, 7
shr edx, 7
mov ecx, edx
push edx
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
shr edx, 1
mov ebx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
rcr edi, 1
shl ebx, 0x1f
mov edx, ebx
mov ecx, edx
xor ebx, ebx
or edi, ebx
pop edx
or edx, ecx
mov ebx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
shrd ebx, edx, 8
shr edx, 8
mov ecx, edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
shl eax, 0x18
mov edx, eax
xor eax, eax
or ecx, edx
pop edx
or ebx, eax
xor edx, ecx
pop ecx
xor edi, ebx
xor ecx, edx
pop edx
xor esi, edi
pop eax
add eax, esi
mov esi, dword [esp + 0x308]
adc edx, ecx
add eax, dword [esp + esi*8 - 0x50]
adc edx, dword [esp + esi*8 - 0x4c]
inc dword [esp + 0x308]
mov dword [esp + esi*8 + 0x30], eax
mov dword [esp + esi*8 + 0x34], edx
cmp dword [esp + 0x308], 0x50
jl 0x415f99
mov edi, dword [esp + 0x308]
mov ebx, dword [esp + 0x310]
xor edi, edi
mov dword [esp + 0x310], ebx
mov edx, dword [esp + 0x2d4]
mov eax, dword [esp + 0x2d0]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d8]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x2d4]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d8]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x2d4]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2d8]
mov esi, dword [esp + 0x2d4]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
pop edx
or ebx, esi
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2d8]
mov ecx, dword [esp + 0x2dc]
add eax, dword [esp + 0x2e8]
adc edx, dword [esp + 0x2ec]
xor ebx, dword [esp + 0x2e0]
xor ecx, dword [esp + 0x2e4]
and ebx, dword [esp + 0x2d0]
and ecx, dword [esp + 0x2d4]
xor ebx, dword [esp + 0x2e0]
xor ecx, dword [esp + 0x2e4]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2b0]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x2b4]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2b8]
mov esi, dword [esp + 0x2b4]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x2b4]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2b8]
mov esi, dword [esp + 0x2b4]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2b4]
and ebx, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2b8]
mov esi, dword [esp + 0x2b4]
or esi, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b8]
or edx, dword [esp + 0x2c0]
and esi, dword [esp + 0x2c4]
or ebx, esi
and ecx, dword [esp + 0x2c0]
and edx, dword [esp + 0x2c8]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2cc], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2ec], edx
mov edx, dword [esp + 0x2cc]
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2c8]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2d0]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x2cc]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2d0]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x2cc]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2cc]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
or ebx, esi
pop edx
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2d0]
add eax, dword [esp + 0x2e0]
mov ecx, dword [esp + 0x2d4]
adc edx, dword [esp + 0x2e4]
xor ebx, dword [esp + 0x2d8]
xor ecx, dword [esp + 0x2dc]
and ebx, dword [esp + 0x2c8]
and ecx, dword [esp + 0x2cc]
xor ebx, dword [esp + 0x2d8]
xor ecx, dword [esp + 0x2dc]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2ec]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2e8]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2f0]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x2ec]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2ec]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x2ec]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2ec]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2ec]
and ebx, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2ec]
or esi, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2f0]
or edx, dword [esp + 0x2b8]
and esi, dword [esp + 0x2bc]
or ebx, esi
and ecx, dword [esp + 0x2b8]
and edx, dword [esp + 0x2c0]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add dword [esp + 0x2c0], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2c4], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2e4], edx
mov edx, dword [esp + 0x2c4]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2c0]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c8]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x2c4]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c8]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x2c4]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2c4]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
pop edx
or ebx, esi
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2c8]
mov ecx, dword [esp + 0x2cc]
add eax, dword [esp + 0x2d8]
adc edx, dword [esp + 0x2dc]
xor ebx, dword [esp + 0x2d0]
xor ecx, dword [esp + 0x2d4]
and ebx, dword [esp + 0x2c0]
and ecx, dword [esp + 0x2c4]
xor ebx, dword [esp + 0x2d0]
xor ecx, dword [esp + 0x2d4]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2e4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2e0]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2e4]
mov edx, dword [esp + 0x2e8]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2e4]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2e8]
mov esi, dword [esp + 0x2e4]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2e4]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2e8]
mov esi, dword [esp + 0x2e4]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2e4]
and ebx, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2e8]
mov esi, dword [esp + 0x2e4]
or esi, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2e8]
or edx, dword [esp + 0x2f0]
and esi, dword [esp + 0x2b4]
or ebx, esi
and ecx, dword [esp + 0x2f0]
and edx, dword [esp + 0x2b8]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2b8], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2bc], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2dc], edx
mov edx, dword [esp + 0x2bc]
mov dword [esp + 0x2d8], eax
mov eax, dword [esp + 0x2b8]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2bc]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2bc]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2c0]
mov esi, dword [esp + 0x2bc]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
pop edx
or ebx, esi
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2c4]
add eax, dword [esp + 0x2d0]
adc edx, dword [esp + 0x2d4]
xor ebx, dword [esp + 0x2c8]
xor ecx, dword [esp + 0x2cc]
and ebx, dword [esp + 0x2b8]
and ecx, dword [esp + 0x2bc]
xor ebx, dword [esp + 0x2c8]
xor ecx, dword [esp + 0x2cc]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2dc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2d8]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2e0]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2e0]
mov ebx, dword [esp + 0x2dc]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2e0]
mov esi, dword [esp + 0x2dc]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2e0]
mov ebx, dword [esp + 0x2dc]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2e0]
mov esi, dword [esp + 0x2dc]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
xor eax, ebx
push edx
mov ebx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x2e0]
and ebx, dword [esp + 0x2e4]
mov esi, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2e0]
or esi, dword [esp + 0x2e4]
or edx, dword [esp + 0x2e8]
and esi, dword [esp + 0x2ec]
or ebx, esi
and ecx, dword [esp + 0x2e8]
and edx, dword [esp + 0x2f0]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2b4], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2d4], edx
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x2b0]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x2b4]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x2b4]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2b8]
mov esi, dword [esp + 0x2b4]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
pop edx
or ebx, esi
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2bc]
add eax, dword [esp + 0x2c8]
adc edx, dword [esp + 0x2cc]
xor ebx, dword [esp + 0x2c0]
xor ecx, dword [esp + 0x2c4]
and ebx, dword [esp + 0x2b0]
and ecx, dword [esp + 0x2b4]
xor ebx, dword [esp + 0x2c0]
xor ecx, dword [esp + 0x2c4]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2d4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2d0]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d8]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x2d4]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2d8]
mov esi, dword [esp + 0x2d4]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x2d4]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2d8]
mov esi, dword [esp + 0x2d4]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2d4]
and ebx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x2d8]
mov esi, dword [esp + 0x2d4]
or esi, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2d8]
or edx, dword [esp + 0x2e0]
and esi, dword [esp + 0x2e4]
or ebx, esi
and ecx, dword [esp + 0x2e0]
and edx, dword [esp + 0x2e8]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2ec], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2c8], eax
inc edi
mov edx, dword [esp + 0x2ec]
mov eax, dword [esp + 0x2e8]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2f0]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x2ec]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2f0]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x2ec]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2ec]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
pop edx
or ebx, esi
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2b0]
mov ecx, dword [esp + 0x2b4]
add eax, dword [esp + 0x2c0]
adc edx, dword [esp + 0x2c4]
xor ebx, dword [esp + 0x2b8]
xor ecx, dword [esp + 0x2bc]
and ebx, dword [esp + 0x2e8]
and ecx, dword [esp + 0x2ec]
xor ebx, dword [esp + 0x2b8]
xor ecx, dword [esp + 0x2bc]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2cc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c8]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2d0]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x2cc]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2cc]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2d0]
mov ebx, dword [esp + 0x2cc]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2cc]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2cc]
and ebx, dword [esp + 0x2d4]
mov ecx, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2cc]
or esi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d0]
or edx, dword [esp + 0x2d8]
and esi, dword [esp + 0x2dc]
or ebx, esi
and ecx, dword [esp + 0x2d8]
and edx, dword [esp + 0x2e0]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2e4], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2c4], edx
mov edx, dword [esp + 0x2e4]
mov dword [esp + 0x2c0], eax
mov eax, dword [esp + 0x2e0]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2e4]
mov edx, dword [esp + 0x2e8]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2e4]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2e4]
mov edx, dword [esp + 0x2e8]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2e4]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2e8]
mov esi, dword [esp + 0x2e4]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
or ebx, esi
pop edx
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2e8]
add eax, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2ec]
adc edx, dword [esp + 0x2bc]
xor ebx, dword [esp + 0x2b0]
xor ecx, dword [esp + 0x2b4]
and ebx, dword [esp + 0x2e0]
and ecx, dword [esp + 0x2e4]
xor ebx, dword [esp + 0x2b0]
xor ecx, dword [esp + 0x2b4]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c0]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c8]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x2c4]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2c4]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x2c4]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2c4]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2c4]
and ebx, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c8]
mov esi, dword [esp + 0x2c4]
or esi, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c8]
or edx, dword [esp + 0x2d0]
and esi, dword [esp + 0x2d4]
or ebx, esi
and ecx, dword [esp + 0x2d0]
and edx, dword [esp + 0x2d8]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add dword [esp + 0x2d8], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2dc], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2bc], edx
mov edx, dword [esp + 0x2dc]
mov dword [esp + 0x2b8], eax
mov eax, dword [esp + 0x2d8]
shrd eax, edx, 0xe
shr edx, 0xe
push edx
mov ebx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2e0]
shl ebx, 0x12
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2e0]
mov ebx, dword [esp + 0x2dc]
shrd ebx, edx, 0x12
shr edx, 0x12
mov ecx, edx
mov esi, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2e0]
shl esi, 0xe
mov edx, esi
xor esi, esi
or ecx, edx
or ebx, esi
xor eax, ebx
pop edx
xor edx, ecx
push edx
mov edx, dword [esp + 0x2e0]
mov ebx, dword [esp + 0x2dc]
shr edx, 9
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2e0]
mov esi, dword [esp + 0x2dc]
shld edx, esi, 0x17
shl esi, 0x17
or ecx, edx
pop edx
or ebx, esi
xor eax, ebx
xor edx, ecx
mov ebx, dword [esp + 0x2e0]
mov ecx, dword [esp + 0x2e4]
add eax, dword [esp + 0x2b0]
adc edx, dword [esp + 0x2b4]
xor ebx, dword [esp + 0x2e8]
xor ecx, dword [esp + 0x2ec]
and ebx, dword [esp + 0x2d8]
and ecx, dword [esp + 0x2dc]
xor ebx, dword [esp + 0x2e8]
xor ecx, dword [esp + 0x2ec]
add eax, ebx
adc edx, ecx
add eax, dword [edi*8 + 0x467978]
adc edx, dword [edi*8 + 0x46797c]
add eax, dword [esp + edi*8 + 0x30]
adc edx, dword [esp + edi*8 + 0x34]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2bc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2b8]
shrd eax, edx, 0x1c
shr edx, 0x1c
push edx
mov ebx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
shl ebx, 4
mov edx, ebx
mov ecx, edx
pop edx
xor ebx, ebx
or edx, ecx
push edx
or eax, ebx
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2bc]
shr edx, 2
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2c0]
mov esi, dword [esp + 0x2bc]
shld edx, esi, 0x1e
shl esi, 0x1e
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov edx, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2bc]
shr edx, 7
mov ebx, edx
xor edx, edx
mov ecx, edx
mov edx, dword [esp + 0x2c0]
mov esi, dword [esp + 0x2bc]
shld edx, esi, 0x19
shl esi, 0x19
or ecx, edx
pop edx
or ebx, esi
xor edx, ecx
push edx
xor eax, ebx
mov ebx, dword [esp + 0x2bc]
and ebx, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov esi, dword [esp + 0x2bc]
or esi, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
or edx, dword [esp + 0x2c8]
and esi, dword [esp + 0x2cc]
or ebx, esi
and ecx, dword [esp + 0x2c8]
and edx, dword [esp + 0x2d0]
or ecx, edx
add eax, ebx
pop edx
adc edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x2d4], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
inc edi
cmp edi, 0x50
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2b4], edx
jl 0x4160d4
mov ebx, dword [esp + 0x310]
xor edi, edi
lea ecx, [ebx + edi*8]
mov edx, dword [esp + edi*8 + 0x2b4]
mov eax, dword [esp + edi*8 + 0x2b0]
add dword [ecx + 0x10], eax
adc dword [ecx + 0x14], edx
inc edi
cmp edi, 8
jb 0x41726e
push 0x2d0
lea ebx, [esp + 0x24]
push ebx
call fcn.0041a350
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x300
ret