Function at 0x101311f0
Capabilities:
Encode data using xor
Hash data using whirlpool

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x103c4120]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x104]
sub ecx, eax
mov dword [ebp - 0x10c], 0
lea edx, [ebp - 0x84]
mov dword [ebp - 0x110], ecx
sub eax, edx
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp + 0xc], eax
mov eax, esi
sub eax, edx
mov dword [ebp - 0x114], esi
push edi
mov dword [ebp - 0x108], eax
xor esi, esi
lea eax, [eax + esi*8]
lea ebx, [ebp - 0x84]
add ebx, eax
mov eax, dword [ebp + 0xc]
mov edi, dword [ebx]
lea eax, [eax + esi*8]
mov edx, dword [ebx + 4]
lea eax, [ebp + eax - 0x84]
mov dword [eax + ecx], edi
mov dword [eax + ecx + 4], edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
bswap eax
xor eax, edi
bswap ecx
xor ecx, edx
mov dword [ebp + esi*8 - 0x84], eax
mov dword [ebp + esi*8 - 0x80], ecx
inc esi
mov dword [ebx], eax
mov eax, ecx
mov ecx, dword [ebp - 0x110]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x108]
cmp esi, 8
jl 0x10131241
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0x110], 0
jle 0x1013259c
xor esi, esi
mov eax, esi
xor esi, 1
shl eax, 6
mov ecx, esi
shl ecx, 6
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x10c], ecx
movzx edx, word [ebp + eax - 0xc6]
mov ecx, dword [ebp + eax - 0xe4]
and edx, 0xff
mov eax, dword [ebp + eax - 0xe0]
shrd ecx, eax, 0x18
mov ebx, dword [edx*8 + 0x102bcf30]
and ecx, 0xff
mov edi, dword [edx*8 + 0x102bcf34]
mov edx, dword [ebp - 0x108]
shr eax, 0x18
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov ecx, dword [ebp + edx - 0xec]
mov eax, dword [ebp + edx - 0xe8]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0xd4]
mov edx, dword [ebp + edx - 0xd0]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0xf4]
mov eax, dword [ebp + edx - 0xf0]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0xdc]
mov edx, dword [ebp + edx - 0xd8]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov cl, 0x20
call fcn.101c6b70
mov ecx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
movzx eax, byte [ebp + ecx - 0xfd]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + ecx - 0xfc]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x110]
xor edi, dword [eax*8 + 0x102001f4]
xor ebx, dword [eax*8 + 0x102001f0]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0x104], ebx
mov dword [ebp + eax - 0x100], edi
movzx edi, word [ebp + ecx - 0xfe]
mov eax, dword [ebp + ecx - 0xcc]
and edi, 0xff
mov edx, dword [ebp + ecx - 0xc8]
mov cl, 0x28
call fcn.101c6b70
mov ebx, dword [edi*8 + 0x102bcf30]
and eax, 0xff
mov edx, dword [ebp - 0x108]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0xe4]
mov eax, dword [ebp + edx - 0xe0]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov ecx, dword [ebp + edx - 0xec]
mov eax, dword [ebp + edx - 0xe8]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0xd4]
mov edx, dword [ebp + edx - 0xd0]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
mov ecx, dword [ebp + edx - 0xdc]
mov eax, dword [ebp + edx - 0xd8]
shrd ecx, eax, 0x18
shr eax, 0x18
and ecx, 0xff
movzx eax, byte [ebp + edx - 0xf5]
xor edi, dword [ecx*8 + 0x102be734]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [ecx*8 + 0x102be730]
mov cl, 0x20
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + edx - 0xf4]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xfc], ebx
mov dword [ebp + eax - 0xf8], edi
movzx edi, word [ebp + edx - 0xf6]
mov eax, dword [ebp + edx - 0xcc]
and edi, 0xff
mov edx, dword [ebp + edx - 0xc8]
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
mov ebx, dword [edi*8 + 0x102bcf30]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0xe4]
mov eax, dword [ebp + edx - 0xe0]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0xd0]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov ecx, dword [ebp + edx - 0xd4]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x104]
mov edx, dword [ebp + edx - 0x100]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0xdc]
mov eax, dword [ebp + edx - 0xd8]
shrd ecx, eax, 0x10
shr eax, 0x10
and ecx, 0xff
movzx eax, byte [ebp + edx - 0xed]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0xec]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xf4], ebx
mov dword [ebp + eax - 0xf0], edi
movzx edx, word [ebp + edx - 0xee]
mov eax, dword [ebp - 0x108]
and edx, 0xff
mov ecx, dword [ebp + eax - 0xcc]
mov eax, dword [ebp + eax - 0xc8]
mov ebx, dword [edx*8 + 0x102bcf30]
mov edi, dword [edx*8 + 0x102bcf34]
mov edx, dword [ebp - 0x108]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0xfc]
mov edx, dword [ebp + edx - 0xf8]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0xd4]
mov eax, dword [ebp + edx - 0xd0]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0x104]
mov edx, dword [ebp + edx - 0x100]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0xdc]
mov eax, dword [ebp + edx - 0xd8]
shrd ecx, eax, 8
shr eax, 8
and ecx, 0xff
movzx eax, byte [ebp + edx - 0xe5]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0xe4]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xec], ebx
mov dword [ebp + eax - 0xe8], edi
mov eax, dword [ebp - 0x108]
movzx edx, word [ebp + edx - 0xe6]
and edx, 0xff
mov ecx, dword [ebp + eax - 0xcc]
mov eax, dword [ebp + eax - 0xc8]
mov ebx, dword [edx*8 + 0x102bcf30]
mov edi, dword [edx*8 + 0x102bcf34]
mov edx, dword [ebp - 0x108]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0xfc]
mov edx, dword [ebp + edx - 0xf8]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x20
call fcn.101c6b70
mov ecx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov eax, dword [ebp + ecx - 0xf4]
mov edx, dword [ebp + ecx - 0xf0]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0xd4]
mov eax, dword [ebp + edx - 0xd0]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0x100]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov ecx, dword [ebp + edx - 0x104]
shrd ecx, eax, 0x18
shr eax, 0x18
and ecx, 0xff
movzx eax, byte [ebp + edx - 0xdd]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0xdc]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xe4], ebx
mov dword [ebp + eax - 0xe0], edi
mov eax, dword [ebp - 0x108]
movzx edx, word [ebp + edx - 0xde]
and edx, 0xff
mov ecx, dword [ebp + eax - 0xcc]
mov eax, dword [ebp + eax - 0xc8]
mov ebx, dword [edx*8 + 0x102bcf30]
mov edi, dword [edx*8 + 0x102bcf34]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp + ecx - 0xec]
mov edx, dword [ebp + ecx - 0xe8]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0xfc]
mov eax, dword [ebp + edx - 0xf8]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0xf4]
mov edx, dword [ebp + edx - 0xf0]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
mov ecx, dword [ebp + edx - 0x104]
mov eax, dword [ebp + edx - 0x100]
shrd ecx, eax, 0x10
shr eax, 0x10
and ecx, 0xff
movzx eax, byte [ebp + edx - 0xd5]
xor edi, dword [ecx*8 + 0x102bef34]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [ecx*8 + 0x102bef30]
mov cl, 0x28
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + edx - 0xd4]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xdc], ebx
mov dword [ebp + eax - 0xd8], edi
movzx edi, word [ebp + edx - 0xd6]
mov eax, dword [ebp + edx - 0xe4]
and edi, 0xff
mov edx, dword [ebp + edx - 0xe0]
call fcn.101c6b70
and eax, 0xff
mov ecx, dword [ebp - 0x108]
mov ebx, dword [edi*8 + 0x102bcf30]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov eax, dword [ebp + ecx - 0xec]
mov edx, dword [ebp + ecx - 0xe8]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
mov ecx, dword [ebp + edx - 0xfc]
mov eax, dword [ebp + edx - 0xf8]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0xf0]
xor edi, dword [ecx*8 + 0x102bef34]
xor ebx, dword [ecx*8 + 0x102bef30]
mov ecx, dword [ebp + edx - 0xf4]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x100]
xor edi, dword [ecx*8 + 0x102be734]
xor ebx, dword [ecx*8 + 0x102be730]
mov ecx, dword [ebp + edx - 0x104]
shrd ecx, eax, 8
shr eax, 8
and ecx, 0xff
movzx eax, byte [ebp + edx - 0xcd]
xor edi, dword [ecx*8 + 0x102bf734]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [ecx*8 + 0x102bf730]
mov cl, 0x20
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + edx - 0xcc]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xd4], ebx
mov dword [ebp + eax - 0xd0], edi
movzx edi, word [ebp + edx - 0xce]
mov eax, dword [ebp + edx - 0xe4]
and edi, 0xff
mov edx, dword [ebp + edx - 0xe0]
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
mov ebx, dword [edi*8 + 0x102bcf30]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0xec]
mov eax, dword [ebp + edx - 0xe8]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0xf8]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov ecx, dword [ebp + edx - 0xfc]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0xf0]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov ecx, dword [ebp + edx - 0xf4]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0xdc]
mov edx, dword [ebp + edx - 0xd8]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x28
call fcn.101c6b70
and eax, 0xff
mov ecx, dword [ebp - 0x108]
xor edi, dword [eax*8 + 0x102bd734]
xor ebx, dword [eax*8 + 0x102bd730]
movzx eax, byte [ebp + ecx - 0xc5]
mov edx, dword [ebp + ecx - 0x50]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + ecx - 0x104]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
mov dword [ebp + eax - 0xcc], ebx
mov dword [ebp + eax - 0xc8], edi
movzx edi, word [ebp + ecx - 0x46]
mov eax, dword [ebp + ecx - 0x54]
and edi, 0xff
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
mov ebx, dword [edi*8 + 0x102bcf30]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0x74]
mov eax, dword [ebp + edx - 0x70]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0x5c]
mov edx, dword [ebp + edx - 0x58]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
mov ecx, dword [ebp + edx - 0x64]
mov eax, dword [ebp + edx - 0x60]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x68]
xor edi, dword [ecx*8 + 0x102be734]
xor ebx, dword [ecx*8 + 0x102be730]
mov ecx, dword [ebp + edx - 0x6c]
shrd ecx, eax, 0x10
shr eax, 0x10
and ecx, 0xff
movzx eax, byte [ebp + edx - 0x7d]
xor edi, dword [ecx*8 + 0x102bef34]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [ecx*8 + 0x102bef30]
mov cl, 0x20
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + edx - 0x7c]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
xor edi, dword [ebp + eax - 0x100]
xor ebx, dword [ebp + eax - 0x104]
mov dword [ebp + eax - 0x84], ebx
mov dword [ebp + eax - 0x80], edi
movzx edi, word [ebp + edx - 0x7e]
mov eax, dword [ebp + edx - 0x54]
and edi, 0xff
mov edx, dword [ebp + edx - 0x50]
call fcn.101c6b70
mov ebx, dword [edi*8 + 0x102bcf30]
and eax, 0xff
mov edx, dword [ebp - 0x108]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0x5c]
mov eax, dword [ebp + edx - 0x58]
shrd ecx, eax, 0x18
shr eax, 0x18
and ecx, 0xff
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov cl, 0x28
mov eax, dword [ebp + edx - 0x4c]
mov edx, dword [ebp + edx - 0x48]
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0x64]
mov eax, dword [ebp + edx - 0x60]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0x68]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov ecx, dword [ebp + edx - 0x6c]
shrd ecx, eax, 8
shr eax, 8
and ecx, 0xff
movzx eax, byte [ebp + edx - 0x75]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0x74]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
xor ebx, dword [ebp + eax - 0xfc]
xor edi, dword [ebp + eax - 0xf8]
mov dword [ebp + eax - 0x7c], ebx
mov dword [ebp + eax - 0x78], edi
mov eax, dword [ebp - 0x108]
movzx edx, word [ebp + edx - 0x76]
and edx, 0xff
mov ecx, dword [ebp + eax - 0x54]
mov eax, dword [ebp + eax - 0x50]
mov ebx, dword [edx*8 + 0x102bcf30]
mov edi, dword [edx*8 + 0x102bcf34]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp + ecx - 0x84]
mov edx, dword [ebp + ecx - 0x80]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0x5c]
mov eax, dword [ebp + edx - 0x58]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0x4c]
mov edx, dword [ebp + edx - 0x48]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0x64]
mov eax, dword [ebp + edx - 0x60]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
movzx eax, byte [ebp + edx - 0x6d]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0x6c]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
xor ebx, dword [ebp + eax - 0xf4]
xor edi, dword [ebp + eax - 0xf0]
mov dword [ebp + eax - 0x74], ebx
mov dword [ebp + eax - 0x70], edi
mov eax, dword [ebp - 0x108]
movzx edx, word [ebp + edx - 0x6e]
and edx, 0xff
mov ecx, dword [ebp + eax - 0x54]
mov eax, dword [ebp + eax - 0x50]
mov ebx, dword [edx*8 + 0x102bcf30]
mov edi, dword [edx*8 + 0x102bcf34]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp + ecx - 0x84]
mov edx, dword [ebp + ecx - 0x80]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0x5c]
mov eax, dword [ebp + edx - 0x58]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0x48]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov ecx, dword [ebp + edx - 0x4c]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x7c]
mov edx, dword [ebp + edx - 0x78]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov cl, 0x28
call fcn.101c6b70
mov ecx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bd734]
xor ebx, dword [eax*8 + 0x102bd730]
movzx eax, byte [ebp + ecx - 0x65]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + ecx - 0x64]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
xor edi, dword [ebp + eax - 0xe8]
xor ebx, dword [ebp + eax - 0xec]
mov dword [ebp + eax - 0x6c], ebx
mov dword [ebp + eax - 0x68], edi
movzx edi, word [ebp + ecx - 0x66]
mov eax, dword [ebp + ecx - 0x74]
and edi, 0xff
mov edx, dword [ebp + ecx - 0x70]
mov cl, 0x28
call fcn.101c6b70
mov ebx, dword [edi*8 + 0x102bcf30]
and eax, 0xff
mov edx, dword [ebp - 0x108]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0x54]
mov eax, dword [ebp + edx - 0x50]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov ecx, dword [ebp + edx - 0x84]
mov eax, dword [ebp + edx - 0x80]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x48]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov ecx, dword [ebp + edx - 0x4c]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0x7c]
mov edx, dword [ebp + edx - 0x78]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x20
call fcn.101c6b70
mov ecx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
movzx eax, byte [ebp + ecx - 0x5d]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + ecx - 0x5c]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
xor edi, dword [ebp + eax - 0xe0]
xor ebx, dword [ebp + eax - 0xe4]
mov dword [ebp + eax - 0x64], ebx
mov dword [ebp + eax - 0x60], edi
movzx edi, word [ebp + ecx - 0x5e]
mov eax, dword [ebp + ecx - 0x74]
and edi, 0xff
mov edx, dword [ebp + ecx - 0x70]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
mov ebx, dword [edi*8 + 0x102bcf30]
mov edi, dword [edi*8 + 0x102bcf34]
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0x84]
mov eax, dword [ebp + edx - 0x80]
shrd ecx, eax, 0x10
and ecx, 0xff
shr eax, 0x10
mov eax, dword [ebp + edx - 0x48]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov ecx, dword [ebp + edx - 0x4c]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0x6c]
mov edx, dword [ebp + edx - 0x68]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov cl, 0x28
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov ecx, dword [ebp + edx - 0x7c]
mov eax, dword [ebp + edx - 0x78]
shrd ecx, eax, 0x18
shr eax, 0x18
and ecx, 0xff
movzx eax, byte [ebp + edx - 0x55]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0x54]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
xor ebx, dword [ebp + eax - 0xdc]
xor edi, dword [ebp + eax - 0xd8]
mov dword [ebp + eax - 0x5c], ebx
mov dword [ebp + eax - 0x58], edi
mov eax, dword [ebp - 0x108]
movzx edx, word [ebp + edx - 0x56]
and edx, 0xff
mov ecx, dword [ebp + eax - 0x74]
mov eax, dword [ebp + eax - 0x70]
mov ebx, dword [edx*8 + 0x102bcf30]
mov edi, dword [edx*8 + 0x102bcf34]
mov edx, dword [ebp - 0x108]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x80]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov ecx, dword [ebp + edx - 0x84]
shrd ecx, eax, 8
and ecx, 0xff
shr eax, 8
mov eax, dword [ebp + edx - 0x64]
mov edx, dword [ebp + edx - 0x60]
xor ebx, dword [ecx*8 + 0x102bf730]
xor edi, dword [ecx*8 + 0x102bf734]
mov cl, 0x28
call fcn.101c6b70
mov ecx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov eax, dword [ebp + ecx - 0x6c]
mov edx, dword [ebp + ecx - 0x68]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor edi, dword [eax*8 + 0x102bdf34]
xor ebx, dword [eax*8 + 0x102bdf30]
mov ecx, dword [ebp + edx - 0x7c]
mov eax, dword [ebp + edx - 0x78]
shrd ecx, eax, 0x10
shr eax, 0x10
and ecx, 0xff
movzx eax, byte [ebp + edx - 0x4d]
xor edi, dword [ecx*8 + 0x102bef34]
xor edi, dword [eax*8 + 0x102bc734]
xor ebx, dword [ecx*8 + 0x102bef30]
xor ebx, dword [eax*8 + 0x102bc730]
movzx eax, byte [ebp + edx - 0x4c]
xor edi, dword [eax*8 + 0x102bff34]
xor ebx, dword [eax*8 + 0x102bff30]
mov eax, dword [ebp - 0x10c]
xor edi, dword [ebp + eax - 0xd0]
xor ebx, dword [ebp + eax - 0xd4]
mov dword [ebp + eax - 0x54], ebx
mov dword [ebp + eax - 0x50], edi
movzx edi, word [ebp + edx - 0x4e]
mov ecx, dword [ebp + edx - 0x74]
and edi, 0xff
mov eax, dword [ebp + edx - 0x70]
shrd ecx, eax, 0x10
mov ebx, dword [edi*8 + 0x102bcf30]
and ecx, 0xff
mov edi, dword [edi*8 + 0x102bcf34]
shr eax, 0x10
mov eax, dword [ebp + edx - 0x5c]
xor ebx, dword [ecx*8 + 0x102bef30]
xor edi, dword [ecx*8 + 0x102bef34]
mov cl, 0x28
mov edx, dword [ebp + edx - 0x58]
call fcn.101c6b70
mov ecx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bd730]
xor edi, dword [eax*8 + 0x102bd734]
mov eax, dword [ebp + ecx - 0x64]
mov edx, dword [ebp + ecx - 0x60]
mov cl, 0x20
call fcn.101c6b70
mov edx, dword [ebp - 0x108]
and eax, 0xff
xor ebx, dword [eax*8 + 0x102bdf30]
xor edi, dword [eax*8 + 0x102bdf34]
mov ecx, dword [ebp + edx - 0x6c]
mov eax, dword [ebp + edx - 0x68]
shrd ecx, eax, 0x18
and ecx, 0xff
shr eax, 0x18
mov eax, dword [ebp + edx - 0x78]
xor ebx, dword [ecx*8 + 0x102be730]
xor edi, dword [ecx*8 + 0x102be734]
mov ecx, dword [ebp + edx - 0x7c]
shrd ecx, eax, 8
shr eax, 8
and ecx, 0xff
movzx eax, byte [ebp + edx - 0x45]
xor ebx, dword [ecx*8 + 0x102bf730]
xor ebx, dword [eax*8 + 0x102bc730]
xor edi, dword [ecx*8 + 0x102bf734]
xor edi, dword [eax*8 + 0x102bc734]
movzx eax, byte [ebp + edx - 0x84]
xor ebx, dword [eax*8 + 0x102bff30]
xor edi, dword [eax*8 + 0x102bff34]
mov eax, dword [ebp - 0x10c]
xor ebx, dword [ebp + eax - 0xcc]
xor edi, dword [ebp + eax - 0xc8]
mov dword [ebp + eax - 0x4c], ebx
mov dword [ebp + eax - 0x48], edi
mov eax, dword [ebp - 0x110]
inc eax
mov dword [ebp - 0x110], eax
cmp eax, dword [ebp + 0x10]
jl 0x101312b2
mov dword [ebp - 0x10c], esi
mov esi, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x10c]
shl ecx, 6
pop edi
mov eax, dword [ebp + ecx - 0x84]
xor dword [esi], eax
mov eax, dword [ebp + ecx - 0x80]
xor dword [esi + 4], eax
mov eax, dword [ebp + ecx - 0x7c]
xor dword [esi + 8], eax
mov eax, dword [ebp + ecx - 0x78]
xor dword [esi + 0xc], eax
mov eax, dword [ebp + ecx - 0x74]
xor dword [esi + 0x10], eax
mov eax, dword [ebp + ecx - 0x70]
xor dword [esi + 0x14], eax
mov eax, dword [ebp + ecx - 0x6c]
xor dword [esi + 0x18], eax
mov eax, dword [ebp + ecx - 0x68]
xor dword [esi + 0x1c], eax
mov eax, dword [ebp + ecx - 0x64]
xor dword [esi + 0x20], eax
mov eax, dword [ebp + ecx - 0x60]
xor dword [esi + 0x24], eax
mov eax, dword [ebp + ecx - 0x5c]
xor dword [esi + 0x28], eax
mov eax, dword [ebp + ecx - 0x58]
xor dword [esi + 0x2c], eax
mov eax, dword [ebp + ecx - 0x54]
xor dword [esi + 0x30], eax
mov eax, dword [ebp + ecx - 0x50]
xor dword [esi + 0x34], eax
mov eax, dword [ebp + ecx - 0x4c]
xor dword [esi + 0x38], eax
mov eax, dword [ebp + ecx - 0x48]
xor dword [esi + 0x3c], eax
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.101c6a5b
mov esp, ebp
pop ebp
ret