Function at 0x46d460
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x10]
add dword [ebx + 0x350], edi
lea eax, [ebx + 0x2ec]
mov dword [ebp - 0x10], eax
lea ecx, [ebx + 0xec]
adc dword [ebx + 0x354], 0
lea eax, [ebx + 0x32c]
cmp dword [ebx + 0x358], 0
lea edx, [ebx + 0x38]
mov dword [ebp - 0x30], eax
mov eax, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x35c]
mov dword [ebp - 8], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
je 0x46ddb0
mov esi, 0x20
lea eax, [ebx + 0x30c]
sub esi, dword [ebx + 0x358]
mov dword [ebp - 0x18], eax
cmp edi, esi
mov eax, dword [ebx + 0x358]
cmovb esi, edi
add eax, 0x30c
push esi
push dword [ebp + 0xc]
add eax, ebx
push eax
call fcn.004d0d60
mov eax, dword [ebx + 0x358]
sub edi, esi
add dword [ebp + 0xc], esi
add eax, esi
and eax, 0x1f
mov dword [ebp + 0x10], edi
add esp, 0xc
mov dword [ebx + 0x358], eax
test eax, eax
jne 0x46dd9f
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x20]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esi, 0x20
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
lodsd eax, dword [esi]
xor eax, dword [esi + 4]
not eax
stosd dword es:[edi], eax
lodsd eax, dword [esi]
xor eax, dword [esi + 4]
not eax
stosd dword es:[edi], eax
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esi, 0x20
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
mov eax, dword [edi - 0x18]
xor eax, dword [esi]
stosd dword es:[edi], eax
mov eax, dword [edi - 0x18]
xor eax, dword [esi + 4]
stosd dword es:[edi], eax
sub esi, 0x18
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
add dword [ebp - 8], 8
add dword [ebp - 4], 0x10
sub dword [ebp - 0xc], 0xffffff80
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
add dword [ebp - 8], 8
add eax, 0x100
add dword [ebp - 4], 0x10
mov dword [ebp - 0xc], eax
mov ecx, 8
mov esi, dword [0x585d70]
mov edi, dword [ebp - 8]
lodsd eax, dword [esi]
xor dword [edi], eax
add edi, 4
loop 0x46d84b
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
add dword [ebp - 8], 8
add eax, 0x180
add dword [ebp - 4], 0x10
mov dword [ebp - 0xc], eax
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
pushal
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x2c]
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46dafc
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46db55
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46dbae
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46dc07
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
popal
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov esi, dword [ebp - 4]
mov ecx, 6
lodsd eax, dword [esi]
mov edx, eax
shr edx, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov ebx, eax
xor edx, eax
rol eax, 0x10
xor edx, eax
mov eax, dword [esi + 0x10]
xor edx, eax
mov eax, dword [esi + 0x14]
shr eax, 0x10
xor dx, ax
mov eax, edx
shl eax, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov edi, eax
shl eax, 0x10
xor edx, eax
mov dword [esi + 0x14], edx
mov edx, ebx
shr edx, 0x10
xor edx, ebx
mov eax, edi
loop 0x46dc63
add dword [ebp - 4], 0x18
mov ecx, 8
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
xor edx, edx
lodsd eax, dword [esi]
shrd edx, eax, 0x10
xor edx, dword [ebx]
xor dword [edi], edx
add edi, 4
add ebx, 4
mov edx, eax
loop 0x46dcab
xor edx, dword [esi - 0xc]
mov dx, ax
xor edx, dword [esi - 0x20]
xor dx, word [esi - 0x1c]
mov eax, edx
shr eax, 0x10
xor ax, dx
xor dword [edi - 0x20], eax
mov esi, dword [ebp - 4]
mov ecx, 1
lodsd eax, dword [esi]
mov edx, eax
shr edx, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov ebx, eax
xor edx, eax
rol eax, 0x10
xor edx, eax
mov eax, dword [esi + 0x10]
xor edx, eax
mov eax, dword [esi + 0x14]
shr eax, 0x10
xor dx, ax
mov eax, edx
shl eax, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov edi, eax
shl eax, 0x10
xor edx, eax
mov dword [esi + 0x14], edx
mov edx, ebx
shr edx, 0x10
xor edx, ebx
mov eax, edi
loop 0x46dce7
add dword [ebp - 4], 4
mov esi, dword [ebp - 4]
mov ecx, 0x1e
lodsd eax, dword [esi]
mov edx, eax
shr edx, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov ebx, eax
xor edx, eax
rol eax, 0x10
xor edx, eax
mov eax, dword [esi + 0x10]
xor edx, eax
mov eax, dword [esi + 0x14]
shr eax, 0x10
xor dx, ax
mov eax, edx
shl eax, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov edi, eax
shl eax, 0x10
xor edx, eax
mov dword [esi + 0x14], edx
mov edx, ebx
shr edx, 0x10
xor edx, ebx
mov eax, edi
loop 0x46dd30
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
add eax, 0x78
push 0x20
push eax
push ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], ecx
call fcn.004d0d60
add esp, 0xc
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x30]
mov ecx, 8
xor edx, edx
shr edx, 1
lodsd eax, dword [esi]
adc dword [edi], eax
setb dl
add edi, 4
loop 0x46dd8c
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x46e69e
lea edx, [ebx + 0x38]
lea ecx, [ebx + 0xec]
cmp edi, 0x1f
jbe 0x46e67e
mov eax, ecx
lea ecx, [edi - 0x20]
shr ecx, 5
inc ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], ecx
nop dword [eax + eax]
mov dword [ebp - 8], ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], edx
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x20]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esi, 0x20
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
lodsd eax, dword [esi]
xor eax, dword [esi + 4]
not eax
stosd dword es:[edi], eax
lodsd eax, dword [esi]
xor eax, dword [esi + 4]
not eax
stosd dword es:[edi], eax
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esi, 0x20
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor dword [edi - 8], eax
xor dword [edi - 4], ebx
mov eax, dword [edi - 0x18]
xor eax, dword [esi]
stosd dword es:[edi], eax
mov eax, dword [edi - 0x18]
xor eax, dword [esi + 4]
stosd dword es:[edi], eax
sub esi, 0x18
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [esi + 0xc]
xor dword [edi - 4], eax
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
add dword [ebp - 8], 8
add dword [ebp - 4], 0x10
sub dword [ebp - 0xc], 0xffffff80
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
add dword [ebp - 8], 8
add eax, 0x100
add dword [ebp - 4], 0x10
mov dword [ebp - 0xc], eax
mov ecx, 8
mov esi, dword [0x585d70]
mov edi, dword [ebp - 8]
lodsd eax, dword [esi]
xor dword [edi], eax
add edi, 4
loop 0x46e109
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
add dword [ebp - 8], 8
add eax, 0x180
add dword [ebp - 4], 0x10
mov dword [ebp - 0xc], eax
push ebp
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 8]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x10]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
sub esi, 0x18
xor eax, dword [edi + 0x18]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ecx
push edx
push ebx
push ebp
xor ebx, ebx
mov ebp, ebx
mov ecx, ebx
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 4]
mov bl, al
mov bp, bx
mov bl, ah
rol eax, 0x10
mov cl, ah
mov edx, eax
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0xc]
mov bh, ah
shl ax, 8
or bp, ax
rol eax, 0x10
mov ch, ah
rol ecx, 0x10
mov dh, al
lodsd eax, dword [esi]
add esi, 4
xor eax, dword [edi + 0x14]
shld edx, eax, 0x10
ror edx, 8
rol eax, 8
mov cl, al
shld ebx, eax, 0x10
rol eax, 8
shld ebp, eax, 0x10
lodsd eax, dword [esi]
xor eax, dword [edi + 0x1c]
ror ebp, 8
shrd ebp, eax, 8
mov bh, ah
rol ebx, 0x10
rol eax, 0x10
shrd edx, eax, 8
mov ch, ah
rol ecx, 0x10
push ebp
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp - 0xc]
pop ebp
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
pop eax
stosd dword es:[edi], eax
mov eax, ebp
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
pop ebp
mov esi, edi
sub esi, 0x20
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
mov dword [edi + 0x1c], eax
lodsd eax, dword [esi]
mov dword [edi + 0x18], eax
lodsd eax, dword [esi]
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
mov dword [edi + 0x10], eax
lodsd eax, dword [esi]
mov dword [edi + 0xc], eax
lodsd eax, dword [esi]
mov dword [edi + 8], eax
lodsd eax, dword [esi]
mov dword [edi + 4], eax
lodsd eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
pushal
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x2c]
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46e3ba
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46e413
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46e46c
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
mov ecx, esi
mov esi, dword [ebp - 8]
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov dword [ebp - 8], esi
mov esi, ecx
xchg edx, eax
mov ecx, 0x20
push ebp
mov ebp, eax
add eax, dword [esi]
add esi, 4
movzx ebx, al
xor edx, dword [edi + ebx*4]
mov bl, ah
xor edx, dword [edi + ebx*4 + 0x400]
shr eax, 0x10
mov bl, ah
xor edx, dword [edi + ebx*4 + 0xc00]
mov bl, al
xor edx, dword [edi + ebx*4 + 0x800]
mov eax, edx
mov edx, ebp
loop 0x46e4c5
pop ebp
mov ecx, esi
mov esi, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], eax
add esi, 8
mov dword [ebp - 4], esi
mov esi, ecx
popal
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov esi, dword [ebp - 4]
mov ecx, 6
lodsd eax, dword [esi]
mov edx, eax
shr edx, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov ebx, eax
xor edx, eax
rol eax, 0x10
xor edx, eax
mov eax, dword [esi + 0x10]
xor edx, eax
mov eax, dword [esi + 0x14]
shr eax, 0x10
xor dx, ax
mov eax, edx
shl eax, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov edi, eax
shl eax, 0x10
xor edx, eax
mov dword [esi + 0x14], edx
mov edx, ebx
shr edx, 0x10
xor edx, ebx
mov eax, edi
loop 0x46e521
add dword [ebp - 4], 0x18
mov ecx, 8
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 0xc]
xor edx, edx
lodsd eax, dword [esi]
shrd edx, eax, 0x10
xor edx, dword [ebx]
xor dword [edi], edx
add edi, 4
add ebx, 4
mov edx, eax
loop 0x46e569
xor edx, dword [esi - 0xc]
mov dx, ax
xor edx, dword [esi - 0x20]
xor dx, word [esi - 0x1c]
mov eax, edx
shr eax, 0x10
xor ax, dx
xor dword [edi - 0x20], eax
mov esi, dword [ebp - 4]
mov ecx, 1
lodsd eax, dword [esi]
mov edx, eax
shr edx, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov ebx, eax
xor edx, eax
rol eax, 0x10
xor edx, eax
mov eax, dword [esi + 0x10]
xor edx, eax
mov eax, dword [esi + 0x14]
shr eax, 0x10
xor dx, ax
mov eax, edx
shl eax, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov edi, eax
shl eax, 0x10
xor edx, eax
mov dword [esi + 0x14], edx
mov edx, ebx
shr edx, 0x10
xor edx, ebx
mov eax, edi
loop 0x46e5a5
add dword [ebp - 4], 4
mov esi, dword [ebp - 4]
mov ecx, 0x1e
lodsd eax, dword [esi]
mov edx, eax
shr edx, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov ebx, eax
xor edx, eax
rol eax, 0x10
xor edx, eax
mov eax, dword [esi + 0x10]
xor edx, eax
mov eax, dword [esi + 0x14]
shr eax, 0x10
xor dx, ax
mov eax, edx
shl eax, 0x10
xor edx, eax
lodsd eax, dword [esi]
mov edi, eax
shl eax, 0x10
xor edx, eax
mov dword [esi + 0x14], edx
mov edx, ebx
shr edx, 0x10
xor edx, ebx
mov eax, edi
loop 0x46e5ee
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
add eax, 0x78
push 0x20
push eax
push ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], ecx
call fcn.004d0d60
add esp, 0xc
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x30]
mov ecx, 8
xor edx, edx
shr edx, 1
lodsd eax, dword [esi]
adc dword [edi], eax
setb dl
add edi, 4
loop 0x46e64a
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
add ecx, 0x20
mov ebx, dword [ebp + 8]
sub edi, 0x20
sub dword [ebp - 0x18], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x10], edi
lea edx, [ebx + 0x38]
jne 0x46ddd0
jmp 0x46e681
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [eax + 0x358], edi
test edi, edi
je 0x46e69e
push edi
push ecx
add eax, 0x30c
push eax
call fcn.004d0d60
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret