Function at 0x555888
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffb04
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x14fc], edx
mov dword [ebp - 0x14f8], edx
mov dword [ebp - 0x14f4], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], eax
lea ebx, [ebp - 0x1098]
xor eax, eax
push ebp
push 0x55872c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
push ebp
push 0x5586f7
push dword fs:[edi]
mov dword fs:[edi], esp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [0x58b48c]
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
je 0x5586ed
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [0x58b48c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add eax, 0x21e2
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x74]
movzx eax, word [eax]
mov edx, dword [ebp - 0x74]
movzx edx, byte [edx + 2]
add eax, edx
mov edx, dword [ebp - 0x74]
movzx edx, byte [edx + 3]
add eax, edx
mov edx, dword [ebp - 0x74]
movzx edx, byte [edx + 4]
add eax, edx
mov edx, dword [ebp - 0x74]
movzx edx, byte [edx + 5]
add eax, edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x38], 0x34b
mov eax, ebx
mov ecx, 0xff
mov edx, 0x1000
call fcn.00403e38
lea eax, [ebp - 0x10e0]
mov ecx, 0xff
mov edx, 0x48
call fcn.00403e38
lea eax, [ebp - 0x98]
xor ecx, ecx
mov edx, 0x14
call fcn.00403e38
lea edx, [ebp - 0x14f4]
mov eax, dword [ebp - 0x58]
call fcn.0040cd94
mov eax, dword [ebp - 0x14f4]
lea edx, [ebp - 0x98]
call fcn.00480938
lea eax, [ebp - 0x28]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x98]
mov ecx, 8
call fcn.004035b8
mov esi, 0x40
mov ecx, 8
mov eax, esi
xor edx, edx
div ecx
mov esi, eax
mov edx, ebx
mov eax, dword [0x58b4d0]
mov ecx, 0x1000
call fcn.004035b8
lea edx, [ebp - 0x10e0]
mov eax, dword [0x58b218]
mov ecx, 0x48
call fcn.004035b8
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0x12
lea eax, [ebp - 0x10e0]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x2c]
add eax, 3
xor edx, edx
div esi
movzx ecx, byte [ebp + edx - 0x28]
mov eax, dword [ebp - 0x2c]
add eax, 2
xor edx, edx
div esi
movzx eax, byte [ebp + edx - 0x28]
shl eax, 8
add ecx, eax
mov eax, dword [ebp - 0x2c]
inc eax
xor edx, edx
div esi
movzx eax, byte [ebp + edx - 0x28]
shl eax, 0x10
add ecx, eax
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x28]
shl eax, 0x18
add ecx, eax
mov eax, dword [ebp - 0x84]
xor dword [eax], ecx
mov eax, dword [ebp - 0x2c]
add eax, 4
xor edx, edx
div esi
mov dword [ebp - 0x2c], edx
add dword [ebp - 0x84], 4
dec dword [ebp - 0x10]
jne 0x555a0d
lea eax, [ebp - 0x34]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
mov dword [ebp - 0x10], 9
lea eax, [ebp - 0x10e0]
mov dword [ebp - 0x84], eax
lea edx, [ebp - 0x34]
mov ecx, edx
mov eax, dword [ecx]
add edx, 4
mov edx, dword [edx]
mov esi, eax
and esi, 0xff
shl esi, 0x18
mov edi, eax
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, eax
and edi, 0xff0000
shr edi, 8
or esi, edi
and eax, 0xff000000
shr eax, 0x18
or esi, eax
mov eax, esi
mov esi, edx
and esi, 0xff
shl esi, 0x18
mov edi, edx
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, edx
and edi, 0xff0000
shr edi, 8
or esi, edi
and edx, 0xff000000
shr edx, 0x18
or esi, edx
mov edx, esi
xor eax, dword [ebp - 0x10e0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10dc]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10d8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10d4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10d0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10cc]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10c8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10c4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10c0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10bc]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10b8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10b4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10b0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10ac]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10a8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10a4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10a0]
xor edx, dword [ebp - 0x109c]
mov esi, eax
and esi, 0xff
shl esi, 0x18
mov edi, eax
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, eax
and edi, 0xff0000
shr edi, 8
or esi, edi
and eax, 0xff000000
shr eax, 0x18
or esi, eax
mov eax, esi
mov esi, edx
and esi, 0xff
shl esi, 0x18
mov edi, edx
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, edx
and edi, 0xff0000
shr edi, 8
or esi, edi
and edx, 0xff000000
shr edx, 0x18
or esi, edx
mov edx, esi
mov dword [ecx], edx
lea edx, [ebp - 0x34]
add edx, 4
mov dword [edx], eax
movzx eax, byte [ebp - 0x31]
movzx edx, byte [ebp - 0x32]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x33]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x34]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0x84]
mov dword [edx], eax
movzx eax, byte [ebp - 0x2d]
movzx edx, byte [ebp - 0x2e]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x2f]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x30]
shl edx, 0x18
add eax, edx
mov edx, dword [ebp - 0x84]
mov dword [edx + 4], eax
add dword [ebp - 0x84], 8
dec dword [ebp - 0x10]
jne 0x555a92
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x10], 0x80
mov eax, dword [ebp - 0x84]
mov ecx, eax
lea edx, [ebp - 0x34]
mov eax, dword [edx]
add edx, 4
mov edx, dword [edx]
mov esi, eax
and esi, 0xff
shl esi, 0x18
mov edi, eax
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, eax
and edi, 0xff0000
shr edi, 8
or esi, edi
and eax, 0xff000000
shr eax, 0x18
or esi, eax
mov eax, esi
mov esi, edx
and esi, 0xff
shl esi, 0x18
mov edi, edx
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, edx
and edi, 0xff0000
shr edi, 8
or esi, edi
and edx, 0xff000000
shr edx, 0x18
or esi, edx
mov edx, esi
xor eax, dword [ebp - 0x10e0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10dc]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10d8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10d4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10d0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10cc]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10c8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10c4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10c0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10bc]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10b8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10b4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10b0]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10ac]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10a8]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10a4]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10a0]
xor edx, dword [ebp - 0x109c]
mov esi, eax
and esi, 0xff
shl esi, 0x18
mov edi, eax
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, eax
and edi, 0xff0000
shr edi, 8
or esi, edi
and eax, 0xff000000
shr eax, 0x18
or esi, eax
mov eax, esi
mov esi, edx
and esi, 0xff
shl esi, 0x18
mov edi, edx
and edi, 0xff00
shl edi, 8
or esi, edi
mov edi, edx
and edi, 0xff0000
shr edi, 8
or esi, edi
and edx, 0xff000000
shr edx, 0x18
or esi, edx
mov edx, esi
lea esi, [ebp - 0x34]
mov dword [esi], edx
lea edx, [ebp - 0x34]
add edx, 4
mov dword [edx], eax
movzx eax, byte [ebp - 0x31]
movzx edx, byte [ebp - 0x32]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x33]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x34]
shl edx, 0x18
add eax, edx
mov dword [ecx], eax
movzx eax, byte [ebp - 0x2d]
movzx edx, byte [ebp - 0x2e]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0x2f]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x30]
shl edx, 0x18
add eax, edx
mov dword [ecx + 4], eax
add ecx, 8
dec dword [ebp - 0x10]
jne 0x556085
add dword [ebp - 0x84], 0x400
dec dword [ebp - 0x2c]
jne 0x556076
lea eax, [ebp - 0x142b]
xor ecx, ecx
mov edx, 0x34b
call fcn.00403e38
lea eax, [ebp - 0x142b]
mov dword [ebp - 0x20], eax
mov eax, dword [0x58b48c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00480b2c
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x54]
mov ecx, 0xff
mov edx, 8
call fcn.00403e38
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x38]
test eax, eax
jns 0x5566b5
add eax, 7
sar eax, 3
test eax, eax
jle 0x556c76
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
mov eax, esi
mov ecx, 8
call fcn.004035b8
lea edx, [ebp - 0x4c]
mov eax, esi
mov ecx, 8
call fcn.004035b8
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x44]
add edx, 4
mov edx, dword [edx]
mov esi, eax
shr esi, 0x18
mov edi, eax
shr edi, 8
and edi, 0xff00
or esi, edi
mov edi, eax
shl edi, 8
and edi, 0xff0000
or esi, edi
shl eax, 0x18
or esi, eax
mov eax, esi
mov esi, edx
shr esi, 0x18
mov edi, edx
shr edi, 8
and edi, 0xff00
or esi, edi
mov edi, edx
shl edi, 8
and edi, 0xff0000
or esi, edi
shl edx, 0x18
or esi, edx
mov edx, esi
xor eax, dword [ebp - 0x109c]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10a0]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10a4]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10a8]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10ac]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10b0]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10b4]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10b8]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10bc]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10c0]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10c4]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10c8]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10cc]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10d0]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10d4]
mov esi, eax
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, eax
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, eax
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, eax
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor edx, esi
xor edx, dword [ebp - 0x10d8]
mov esi, edx
shr esi, 0x18
and esi, 0xff
mov esi, dword [ebx + esi*4]
mov edi, edx
shr edi, 0x10
and edi, 0xff
add esi, dword [ebx + edi*4 + 0x400]
mov edi, edx
shr edi, 8
and edi, 0xff
xor esi, dword [ebx + edi*4 + 0x800]
mov edi, edx
and edi, 0xff
add esi, dword [ebx + edi*4 + 0xc00]
xor eax, esi
xor eax, dword [ebp - 0x10dc]
xor edx, dword [ebp - 0x10e0]
mov esi, eax
shr esi, 0x18
mov edi, eax
shr edi, 8
and edi, 0xff00
or esi, edi
mov edi, eax
shl edi, 8
and edi, 0xff0000
or esi, edi
shl eax, 0x18
or esi, eax
mov eax, esi
mov esi, edx
shr esi, 0x18
mov edi, edx
shr edi, 8
and edi, 0xff00
or esi, edi
mov edi, edx
shl edi, 8
and edi, 0xff0000
or esi, edi
shl edx, 0x18
or esi, edx
mov edx, esi
mov dword [ecx], edx
mov edx, dword [ebp - 0x44]
add edx, 4
mov dword [edx], eax
mov eax, 1
lea edx, [ebp - 0x54]
add edx, eax
dec edx
movzx edx, byte [edx]
mov ecx, dword [ebp - 0x44]
add ecx, eax
dec ecx
xor byte [ecx], dl
inc eax
cmp eax, 9
jne 0x556c34
lea edx, [ebp - 0x54]
lea eax, [ebp - 0x4c]
mov ecx, 8
call fcn.004035b8
mov eax, dword [ebp - 0x40]
add eax, 8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
add eax, 8
mov dword [ebp - 0x44], eax
dec dword [ebp - 0x78]
jne 0x5566c3
mov eax, dword [ebp - 0x38]
and eax, 0x80000007
jns 0x556c85
dec eax
or eax, 0xfffffff8
inc eax
test eax, eax
je 0x557258
lea eax, [ebp - 0x54]
mov eax, dword [eax]
lea edx, [ebp - 0x54]
add edx, 4
mov edx, dword [edx]
mov ecx, eax
and ecx, 0xff
shl ecx, 0x18
mov esi, eax
and esi, 0xff00
shl esi, 8
or ecx, esi
mov esi, eax
and esi, 0xff0000
shr esi, 8
or ecx, esi
and eax, 0xff000000
shr eax, 0x18
or ecx, eax
mov eax, ecx
mov ecx, edx
and ecx, 0xff
shl ecx, 0x18
mov esi, edx
and esi, 0xff00
shl esi, 8
or ecx, esi
mov esi, edx
and esi, 0xff0000
shr esi, 8
or ecx, esi
and edx, 0xff000000
shr edx, 0x18
or ecx, edx
mov edx, ecx
xor eax, dword [ebp - 0x10e0]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10dc]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10d8]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10d4]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10d0]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10cc]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10c8]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10c4]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10c0]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10bc]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10b8]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10b4]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10b0]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10ac]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10a8]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, eax
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, eax
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor edx, ecx
xor edx, dword [ebp - 0x10a4]
mov ecx, edx
shr ecx, 0x18
and ecx, 0xff
mov ecx, dword [ebx + ecx*4]
mov esi, edx
shr esi, 0x10
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0x400]
mov esi, edx
shr esi, 8
and esi, 0xff
xor ecx, dword [ebx + esi*4 + 0x800]
mov esi, edx
and esi, 0xff
add ecx, dword [ebx + esi*4 + 0xc00]
xor eax, ecx
xor eax, dword [ebp - 0x10a0]
xor edx, dword [ebp - 0x109c]
mov ecx, eax
and ecx, 0xff
shl ecx, 0x18
mov esi, eax
and esi, 0xff00
shl esi, 8
or ecx, esi
mov esi, eax
and esi, 0xff0000
shr esi, 8
or ecx, esi
and eax, 0xff000000
shr eax, 0x18
or ecx, eax
mov eax, ecx
mov ecx, edx
and ecx, 0xff
shl ecx, 0x18
mov esi, edx
and esi, 0xff00
shl esi, 8
or ecx, esi
mov esi, edx
and esi, 0xff0000
shr esi, 8
or ecx, esi
and edx, 0xff000000
shr edx, 0x18
or ecx, edx
mov edx, ecx
lea ecx, [ebp - 0x54]
mov dword [ecx], edx
lea edx, [ebp - 0x54]
add edx, 4
mov dword [edx], eax
mov ecx, dword [ebp - 0x38]
and ecx, 0x80000007
jns 0x557219
dec ecx
or ecx, 0xfffffff8
inc ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
call fcn.004035b8
mov ecx, 8
mov eax, dword [ebp - 0x38]
cdq
idiv ecx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
test eax, eax
jle 0x557258
mov dword [ebp - 0x78], eax
mov eax, 1
lea edx, [ebp - 0x54]
add edx, eax
dec edx
movzx edx, byte [edx]
mov ecx, dword [ebp - 0x44]
add ecx, eax
dec ecx
xor byte [ecx], dl
inc eax
dec dword [ebp - 0x78]
jne 0x557241
mov eax, dword [0x23947b4]
call fcn.004603a0
cmp eax, dword [ebp - 0x1421]
jne 0x5586e0
cmp dword [ebp - 0x13e9], 0
je 0x5586e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 0x143c]
push eax
call sub.kernel32.dll_GetLocalTime
movzx eax, word [ebp - 0x143c]
movzx edx, word [ebp - 0x143a]
add eax, edx
movzx edx, word [ebp - 0x1436]
add eax, edx
movzx edx, word [ebp - 0x1434]
add eax, edx
movzx edx, word [ebp - 0x1432]
add eax, edx
mov dword [ebp - 0x58], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ebp - 8]
call fcn.004055e4
push 0x558744
mov eax, dword [0x23947b4]
call fcn.004603a0
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x14f8]
call fcn.0040ce80
push dword [ebp - 0x14f8]
push 0x558750
lea eax, [ebp - 4]
mov edx, 3
call fcn.00405978
mov eax, dword [ebp - 4]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x55732c
mov eax, dword [ebp - 0x7c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x38]
call fcn.00405d04
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edx, [ebp - 0x14fc]
mov eax, dword [ebp - 0x58]
call fcn.0040cd94
mov eax, dword [ebp - 0x14fc]
lea edx, [ebp - 0x98]
call fcn.00480938
lea eax, [ebp - 0x28]
xor ecx, ecx
mov edx, 8
call fcn.00403e38
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x98]
mov ecx, 8
call fcn.004035b8
movzx eax, byte [ebp - 0x28]
movzx edx, byte [ebp - 0x27]
shl edx, 8
or eax, edx
movzx edx, byte [ebp - 0x26]
shl edx, 0x10
or eax, edx
movzx edx, byte [ebp - 0x25]
shl edx, 0x18
or eax, edx
mov dword [ebp - 0x5c], eax
movzx eax, byte [ebp - 0x24]
movzx edx, byte [ebp - 0x23]
shl edx, 8
or eax, edx
movzx edx, byte [ebp - 0x22]
shl edx, 0x10
or eax, edx
movzx edx, byte [ebp - 0x21]
shl edx, 0x18
or eax, edx
mov dword [ebp - 0x60], eax
push 4
push 0xf0f0f0f
lea ecx, [ebp - 0x64]
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
call fcn.0047f260
push 0xcccc0000
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x5c]
mov ecx, 0xfffffffe
call fcn.0047f22c
push 0xcccc0000
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x60]
mov ecx, 0xfffffffe
call fcn.0047f22c
push 1
push 0x66666666
lea ecx, [ebp - 0x64]
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
call fcn.0047f260
push 8
push 0xff00ff
lea ecx, [ebp - 0x64]
lea edx, [ebp - 0x60]
lea eax, [ebp - 0x5c]
call fcn.0047f260
push 1
push 0x66666666
lea ecx, [ebp - 0x64]
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
call fcn.0047f260
mov eax, dword [ebp - 0x60]
and eax, 0xff
shl eax, 0x10
mov edx, dword [ebp - 0x60]
and edx, 0xff00
or eax, edx
mov edx, dword [ebp - 0x60]
and edx, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, dword [ebp - 0x5c]
and edx, 0xf0000000
shr edx, 4
or eax, edx
mov dword [ebp - 0x60], eax
and dword [ebp - 0x5c], 0xfffffff
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x58aa04]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
cmp byte [eax], 0
je 0x5574c9
mov eax, dword [ebp - 0x5c]
shr eax, 2
mov edx, dword [ebp - 0x5c]
shl edx, 0x1a
or eax, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
shr eax, 2
mov edx, dword [ebp - 0x60]
shl edx, 0x1a
or eax, edx
mov dword [ebp - 0x60], eax
jmp 0x5574e9
mov eax, dword [ebp - 0x5c]
shr eax, 1
mov edx, dword [ebp - 0x5c]
shl edx, 0x1b
or eax, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
shr eax, 1
mov edx, dword [ebp - 0x60]
shl edx, 0x1b
or eax, edx
mov dword [ebp - 0x60], eax
and dword [ebp - 0x5c], 0xfffffff
and dword [ebp - 0x60], 0xfffffff
mov eax, dword [ebp - 0x5c]
and eax, 0x3f
mov edx, dword [0x58b438]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x5c]
shr edx, 6
and edx, 3
mov ecx, dword [ebp - 0x5c]
shr ecx, 7
and ecx, 0x3c
or edx, ecx
mov ecx, dword [0x58b438]
or eax, dword [ecx + edx*4 + 0x100]
mov edx, dword [ebp - 0x5c]
shr edx, 0xd
and edx, 0xf
mov ecx, dword [ebp - 0x5c]
shr ecx, 0xe
and ecx, 0x30
or edx, ecx
mov ecx, dword [0x58b438]
or eax, dword [ecx + edx*4 + 0x200]
mov edx, dword [ebp - 0x5c]
shr edx, 0x14
and edx, 1
mov ecx, dword [ebp - 0x5c]
shr ecx, 0x15
and ecx, 6
or edx, ecx
mov ecx, dword [ebp - 0x5c]
shr ecx, 0x16
and ecx, 0x38
or edx, ecx
mov ecx, dword [0x58b438]
or eax, dword [ecx + edx*4 + 0x300]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x60]
and eax, 0x3f
mov edx, dword [0x58b438]
mov eax, dword [edx + eax*4 + 0x400]
mov edx, dword [ebp - 0x60]
shr edx, 7
and edx, 3
mov ecx, dword [ebp - 0x60]
shr ecx, 8
and ecx, 0x3c
or edx, ecx
mov ecx, dword [0x58b438]
or eax, dword [ecx + edx*4 + 0x500]
mov edx, dword [ebp - 0x60]
shr edx, 0xf
and edx, 0x3f
mov ecx, dword [0x58b438]
or eax, dword [ecx + edx*4 + 0x600]
mov edx, dword [ebp - 0x60]
shr edx, 0x15
and edx, 0xf
mov ecx, dword [ebp - 0x60]
shr ecx, 0x16
and ecx, 0x30
or edx, ecx
mov ecx, dword [0x58b438]
or eax, dword [ecx + edx*4 + 0x700]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
shl eax, 0x10
mov edx, dword [ebp - 0x68]
and edx, 0xffff
or eax, edx
mov edx, eax
add edx, edx
add edx, edx
shr eax, 0x1e
or edx, eax
mov eax, dword [ebp - 0x10]
add eax, eax
mov dword [ebp + eax*4 - 0x14bc], edx
mov eax, dword [ebp - 0x68]
shr eax, 0x10
mov edx, dword [ebp - 0x64]
and edx, 0xffff0000
or eax, edx
mov edx, eax
shl edx, 6
shr eax, 0x1a
or edx, eax
mov eax, dword [ebp - 0x10]
add eax, eax
mov dword [ebp + eax*4 - 0x14b8], edx
inc dword [ebp - 0x10]
inc dword [ebp - 0x84]
cmp dword [ebp - 0x10], 0x10
jne 0x55749a
lea eax, [ebp - 0x14e4]
mov ecx, 0x8f
mov edx, 0x14
call fcn.00403e38
lea eax, [ebp - 0x14e4]
mov edx, dword [eax]
lea eax, [ebp - 0x14e4]
add eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
shr eax, 4
xor eax, edx
and eax, 0xf0f0f0f
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 4
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 0x10
xor eax, dword [ebp - 0x6c]
and eax, 0xffff
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 0x10
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 2
xor eax, edx
and eax, 0x33333333
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, eax
add eax, eax
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 8
xor eax, dword [ebp - 0x6c]
and eax, 0xff00ff
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 1
xor eax, edx
and eax, 0x66666666
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, eax
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 0x1d
add edx, edx
add edx, edx
add edx, edx
or eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 0x1d
mov ecx, dword [ebp - 0x6c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or eax, ecx
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x20
jge 0x557a99
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14bc]
xor eax, edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14b8]
xor ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
mov ecx, dword [esi + ecx*4]
xor ecx, dword [ebp - 0x6c]
mov esi, eax
shr esi, 0xa
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x200]
mov esi, eax
shr esi, 0x12
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x700]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14b4]
xor eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14b0]
xor ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x200]
mov ecx, eax
shr ecx, 0x12
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x700]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14ac]
xor eax, edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14a8]
xor ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
mov ecx, dword [esi + ecx*4]
xor ecx, dword [ebp - 0x6c]
mov esi, eax
shr esi, 0xa
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x200]
mov esi, eax
shr esi, 0x12
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x700]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14a4]
xor eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14a0]
xor ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x200]
mov ecx, eax
shr ecx, 0x12
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x700]
add dword [ebp - 0x10], 8
cmp dword [ebp - 0x10], 0x20
jl 0x557733
mov eax, edx
shr eax, 3
shl edx, 0x1d
or eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 3
mov ecx, dword [ebp - 0x6c]
shl ecx, 0x1d
or eax, ecx
mov dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 1
xor eax, dword [ebp - 0x6c]
and eax, 0x66666666
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add eax, eax
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 8
xor eax, edx
and eax, 0xff00ff
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 8
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 2
xor eax, dword [ebp - 0x6c]
and eax, 0x33333333
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add eax, eax
add eax, eax
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 0x10
xor eax, edx
and eax, 0xffff
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 0x10
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 4
xor eax, dword [ebp - 0x6c]
and eax, 0xf0f0f0f
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 4
xor edx, eax
lea eax, [ebp - 0x14e4]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
lea eax, [ebp - 0x14e4]
add eax, 4
mov dword [eax], edx
lea edx, [ebp - 0x14d0]
lea eax, [ebp - 0x14e4]
mov ecx, 0x14
call fcn.004035b8
lea eax, [ebp - 4]
call fcn.00405ad4
mov dword [ebp - 0x40], eax
lea eax, [ebp - 8]
call fcn.00405ad4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x38]
mov ecx, 0x14
cdq
idiv ecx
test eax, eax
jle 0x5580e5
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ecx, 0x14
call fcn.004035b8
lea edx, [ebp - 0x14d0]
mov eax, dword [ebp - 0x44]
mov ecx, 0x14
call fcn.0047f5b0
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
mov eax, dword [ebp - 0x44]
add eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
shr eax, 4
xor eax, edx
and eax, 0xf0f0f0f
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 4
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 0x10
xor eax, dword [ebp - 0x6c]
and eax, 0xffff
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 0x10
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 2
xor eax, edx
and eax, 0x33333333
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, eax
add eax, eax
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 8
xor eax, dword [ebp - 0x6c]
and eax, 0xff00ff
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 1
xor eax, edx
and eax, 0x66666666
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, eax
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 0x1d
add edx, edx
add edx, edx
add edx, edx
or eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 0x1d
mov ecx, dword [ebp - 0x6c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or eax, ecx
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x20
jge 0x557ff9
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14bc]
xor eax, edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14b8]
xor ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
mov ecx, dword [esi + ecx*4]
xor ecx, dword [ebp - 0x6c]
mov esi, eax
shr esi, 0xa
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x200]
mov esi, eax
shr esi, 0x12
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x700]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14b4]
xor eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14b0]
xor ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x200]
mov ecx, eax
shr ecx, 0x12
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x700]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14ac]
xor eax, edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14a8]
xor ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
mov ecx, dword [esi + ecx*4]
xor ecx, dword [ebp - 0x6c]
mov esi, eax
shr esi, 0xa
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x200]
mov esi, eax
shr esi, 0x12
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x700]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14a4]
xor eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14a0]
xor ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x200]
mov ecx, eax
shr ecx, 0x12
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x700]
add dword [ebp - 0x10], 8
cmp dword [ebp - 0x10], 0x20
jl 0x557c93
mov eax, edx
shr eax, 3
shl edx, 0x1d
or eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 3
mov ecx, dword [ebp - 0x6c]
shl ecx, 0x1d
or eax, ecx
mov dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 1
xor eax, dword [ebp - 0x6c]
and eax, 0x66666666
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add eax, eax
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 8
xor eax, edx
and eax, 0xff00ff
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 8
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 2
xor eax, dword [ebp - 0x6c]
and eax, 0x33333333
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add eax, eax
add eax, eax
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 0x10
xor eax, edx
and eax, 0xffff
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 0x10
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 4
xor eax, dword [ebp - 0x6c]
and eax, 0xf0f0f0f
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 4
xor edx, eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [eax], edx
lea edx, [ebp - 0x14d0]
mov eax, dword [ebp - 0x44]
mov ecx, 0x14
call fcn.004035b8
mov eax, dword [ebp - 0x40]
add eax, 0x14
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
add eax, 0x14
mov dword [ebp - 0x44], eax
dec dword [ebp - 0x78]
jne 0x557b9f
mov eax, dword [ebp - 0x38]
mov ecx, 0x14
cdq
idiv ecx
test edx, edx
je 0x55862c
lea eax, [ebp - 0x14d0]
mov edx, dword [eax]
lea eax, [ebp - 0x14d0]
add eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
shr eax, 4
xor eax, edx
and eax, 0xf0f0f0f
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 4
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 0x10
xor eax, dword [ebp - 0x6c]
and eax, 0xffff
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 0x10
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 2
xor eax, edx
and eax, 0x33333333
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, eax
add eax, eax
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 8
xor eax, dword [ebp - 0x6c]
and eax, 0xff00ff
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 1
xor eax, edx
and eax, 0x66666666
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, eax
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 0x1d
add edx, edx
add edx, edx
add edx, edx
or eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 0x1d
mov ecx, dword [ebp - 0x6c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
or eax, ecx
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x20
jge 0x558535
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14bc]
xor eax, edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14b8]
xor ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
mov ecx, dword [esi + ecx*4]
xor ecx, dword [ebp - 0x6c]
mov esi, eax
shr esi, 0xa
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x200]
mov esi, eax
shr esi, 0x12
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x700]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14b4]
xor eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14b0]
xor ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x200]
mov ecx, eax
shr ecx, 0x12
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x700]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14ac]
xor eax, edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14a8]
xor ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
mov ecx, dword [esi + ecx*4]
xor ecx, dword [ebp - 0x6c]
mov esi, eax
shr esi, 0xa
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x200]
mov esi, eax
shr esi, 0x12
and esi, 0x3f
mov edi, dword [0x58b1a4]
xor ecx, dword [edi + esi*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov esi, dword [0x58b1a4]
xor ecx, dword [esi + eax*4 + 0x700]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x14a4]
xor eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0x14a0]
xor ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
shr ecx, 4
mov esi, dword [ebp - 0x64]
shl esi, 0x1c
or ecx, esi
mov dword [ebp - 0x64], ecx
mov ecx, eax
shr ecx, 2
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x200]
mov ecx, eax
shr ecx, 0x12
and ecx, 0x3f
mov esi, dword [0x58b1a4]
xor edx, dword [esi + ecx*4 + 0x400]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x600]
mov eax, dword [ebp - 0x64]
shr eax, 2
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x100]
mov eax, dword [ebp - 0x64]
shr eax, 0xa
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x300]
mov eax, dword [ebp - 0x64]
shr eax, 0x12
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x500]
mov eax, dword [ebp - 0x64]
shr eax, 0x1a
and eax, 0x3f
mov ecx, dword [0x58b1a4]
xor edx, dword [ecx + eax*4 + 0x700]
add dword [ebp - 0x10], 8
cmp dword [ebp - 0x10], 0x20
jl 0x5581cf
mov eax, edx
shr eax, 3
shl edx, 0x1d
or eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 3
mov ecx, dword [ebp - 0x6c]
shl ecx, 0x1d
or eax, ecx
mov dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 1
xor eax, dword [ebp - 0x6c]
and eax, 0x66666666
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add eax, eax
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 8
xor eax, edx
and eax, 0xff00ff
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 8
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 2
xor eax, dword [ebp - 0x6c]
and eax, 0x33333333
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add eax, eax
add eax, eax
xor edx, eax
mov eax, dword [ebp - 0x6c]
shr eax, 0x10
xor eax, edx
and eax, 0xffff
mov dword [ebp - 0x64], eax
xor edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
shl eax, 0x10
xor dword [ebp - 0x6c], eax
mov eax, edx
shr eax, 4
xor eax, dword [ebp - 0x6c]
and eax, 0xf0f0f0f
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
shl eax, 4
xor edx, eax
lea eax, [ebp - 0x14d0]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
lea eax, [ebp - 0x14d0]
add eax, 4
mov dword [eax], edx
mov eax, dword [ebp - 0x38]
mov ecx, 0x14
cdq
idiv ecx
mov ecx, edx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
call fcn.004035b8
mov eax, dword [ebp - 0x38]
mov ecx, 0x14
cdq
idiv ecx
mov ecx, edx
lea edx, [ebp - 0x14d0]
mov eax, dword [ebp - 0x44]
call fcn.0047f5b0
lea edx, [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004907f8
mov eax, dword [0x58b178]
inc dword [eax]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x70], 0x10e20000
mov eax, dword [ebp - 4]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x55866a
mov eax, dword [ebp - 0x80]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x14ec], eax
mov eax, dword [ebp - 0x14ec]
call fcn.0040320c
mov dword [ebp - 0x14e8], eax
mov eax, dword [ebp - 4]
call fcn.00405a74
mov edx, eax
mov eax, dword [ebp - 0x14e8]
call fcn.0040dd00
lea eax, [ebp - 0x14f0]
push eax
mov eax, dword [ebp - 0x70]
push eax
push 0x4a
mov eax, dword [ebp - 0x13e9]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [ebp - 0x14e8]
call fcn.00403228
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xa
jne 0x5558fe
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x558701
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x558733
lea eax, [ebp - 0x14fc]
mov edx, 3
call fcn.00405608
lea eax, [ebp - 8]
mov edx, 2
call fcn.00405608
ret