Function at 0x6146f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xdc
mov esi, dword [esp + 0xfc]
mov ebx, dword [esp + 0xf8]
mov ebp, dword [esp + 0xf0]
mov eax, dword [ebp + 0x10de4]
cmp dword [ebp + 0x10de0], eax
jne 0x614749
mov ecx, dword [esp + 0xf4]
cmp dword [ecx + 0x18], 0
je 0x61476b
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x10], eax
mov edx, dword [ebp + 0xa88]
mov eax, dword [ebp + 0xa8c]
mov dword [esp + 0x8c], edx
jmp 0x614cfb
imul ecx, eax, 0x2c
mov edx, dword [ebp + ecx + 0x10dfc]
mov ecx, dword [ebp + ecx + 0x10e00]
mov dword [ebp + 0x10de4], edx
sub edx, eax
mov dword [esi], edx
mov dword [ebx], ecx
jmp 0x616b31
cmp dword [ebp + 0x10d98], 0x80
jb 0x614bd9
xor eax, eax
cmp dword [ebp + 0x10d94], 0
mov esi, 0
je 0x61483a
xor ecx, ecx
mov edx, dword [0x6b81d4]
nop word [eax + eax]
lea ebx, [ecx + 0x40]
xor esi, esi
mov edi, ebx
mov eax, ebp
nop dword [eax]
mov ebp, ebx
and ebp, 1
neg ebp
shr edi, 1
and ebx, 0xfffffffe
movzx ebx, word [eax + ebx + 0x6e00]
and ebp, 0x7f0
xor ebp, ebx
shr ebp, 4
movzx ebx, byte [edx + ebp]
add esi, ebx
mov ebx, edi
cmp edi, 1
jne 0x6147b0
mov dword [eax + ecx*4 + 0x10194], esi
inc ecx
mov esi, dword [eax + 0x10d94]
cmp ecx, esi
mov ebp, eax
jb 0x6147a0
cmp esi, 0xf
mov eax, 0
jb 0x61483a
mov edx, 0x4073
mov ecx, 0x70
nop word cs:[eax + eax]
mov esi, ecx
and esi, 0xfffffff0
mov edi, dword [ebp + edx*4]
add esi, edi
add esi, 0xffffffb0
mov dword [ebp + edx*4], esi
mov esi, dword [ebp + 0x10d94]
lea edi, [edx + 1]
add edx, 0xffffbf9c
add ecx, 8
cmp edx, esi
mov edx, edi
jb 0x614810
movups xmm0, xmmword [ebp + 0x10194]
movups xmmword [ebp + 0x10594], xmm0
test esi, esi
je 0x6148ea
xor ecx, ecx
mov edx, dword [0x6b81d4]
nop dword [eax + eax]
lea edi, [ecx + 0x40]
xor eax, eax
mov esi, edi
nop word [eax + eax]
mov ebx, edi
and ebx, 1
neg ebx
shr esi, 1
and edi, 0xfffffffe
movzx edi, word [ebp + edi + 0x6e80]
and ebx, 0x7f0
xor ebx, edi
shr ebx, 4
movzx edi, byte [edx + ebx]
add eax, edi
mov edi, esi
cmp esi, 1
jne 0x614870
mov dword [ebp + ecx*4 + 0x10294], eax
inc ecx
mov eax, dword [ebp + 0x10d94]
cmp ecx, eax
jb 0x614860
cmp eax, 0xf
jb 0x6148ea
mov edx, 0x40b3
mov ecx, 0x70
nop dword [eax]
mov eax, ecx
and eax, 0xfffffff0
mov esi, dword [ebp + edx*4]
add eax, esi
add eax, 0xffffffb0
mov dword [ebp + edx*4], eax
mov eax, dword [ebp + 0x10d94]
lea esi, [edx + 1]
add edx, 0xffffbf5c
add ecx, 8
cmp edx, eax
mov edx, esi
jb 0x6148c0
movups xmm0, xmmword [ebp + 0x10294]
movups xmmword [ebp + 0x10794], xmm0
test eax, eax
je 0x61499c
xor eax, eax
mov ecx, dword [0x6b81d4]
nop dword [eax + eax]
lea edi, [eax + 0x40]
xor edx, edx
mov esi, edi
nop word [eax + eax]
mov ebx, edi
and ebx, 1
neg ebx
shr esi, 1
and edi, 0xfffffffe
movzx edi, word [ebp + edi + 0x6f00]
and ebx, 0x7f0
xor ebx, edi
shr ebx, 4
movzx edi, byte [ecx + ebx]
add edx, edi
mov edi, esi
cmp esi, 1
jne 0x614920
mov dword [ebp + eax*4 + 0x10394], edx
inc eax
mov edx, dword [ebp + 0x10d94]
cmp eax, edx
jb 0x614910
cmp edx, 0xf
jb 0x61499e
mov ecx, 0x40f3
mov eax, 0x70
nop dword [eax]
mov edx, eax
and edx, 0xfffffff0
mov esi, dword [ebp + ecx*4]
add edx, esi
add edx, 0xffffffb0
mov dword [ebp + ecx*4], edx
mov edx, dword [ebp + 0x10d94]
lea esi, [ecx + 1]
add ecx, 0xffffbf1c
add eax, 8
cmp ecx, edx
mov ecx, esi
jb 0x614970
jmp 0x61499e
xor edx, edx
movups xmm0, xmmword [ebp + 0x10394]
movups xmmword [ebp + 0x10994], xmm0
test edx, edx
je 0x614a48
xor eax, eax
mov ecx, dword [0x6b81d4]
nop dword [eax]
lea edi, [eax + 0x40]
xor edx, edx
mov esi, edi
nop word [eax + eax]
mov ebx, edi
and ebx, 1
neg ebx
shr esi, 1
and edi, 0xfffffffe
movzx edi, word [ebp + edi + 0x6f80]
and ebx, 0x7f0
xor ebx, edi
shr ebx, 4
movzx edi, byte [ecx + ebx]
add edx, edi
mov edi, esi
cmp esi, 1
jne 0x6149d0
mov dword [ebp + eax*4 + 0x10494], edx
inc eax
mov edx, dword [ebp + 0x10d94]
cmp eax, edx
jb 0x6149c0
cmp edx, 0xf
jb 0x614a48
mov ecx, 0x4133
mov eax, 0x70
nop dword [eax]
mov edx, eax
and edx, 0xfffffff0
mov esi, dword [ebp + ecx*4]
add edx, esi
add edx, 0xffffffb0
mov dword [ebp + ecx*4], edx
lea edx, [ecx + 1]
add ecx, 0xffffbedc
add eax, 8
cmp ecx, dword [ebp + 0x10d94]
mov ecx, edx
jb 0x614a20
movdqu xmm0, xmmword [ebp + 0x10494]
movdqu xmmword [ebp + 0x10b94], xmm0
lea eax, [ebp + 0x7000]
mov dword [esp + 0x24], eax
mov esi, 4
jmp 0x614aca
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx*4 + 0x10194]
add eax, ebp
mov esi, dword [esp + 0x1c]
mov dword [ecx + esi*4 + 0x10594], eax
mov eax, dword [ecx + edx*4 + 0x10294]
add eax, ebp
mov dword [ecx + esi*4 + 0x10794], eax
mov eax, dword [ecx + edx*4 + 0x10394]
add eax, ebp
mov dword [ecx + esi*4 + 0x10994], eax
add ebp, dword [ecx + edx*4 + 0x10494]
mov dword [ecx + esi*4 + 0x10b94], ebp
inc esi
cmp esi, 0x80
je 0x614bbf
mov eax, dword [0x6b81d0]
movzx ebp, byte [eax + esi]
mov ebx, ebp
shr ebx, 1
lea ecx, [ebx - 1]
mov edx, ebp
and edx, 1
or edx, 2
mov dword [esp + 0xc], ecx
shl edx, cl
mov eax, dword [esp + 0x24]
lea eax, [eax + edx*2]
sub eax, ebp
sub eax, ebp
mov edi, esi
sub edi, edx
add eax, 0xfffffffe
cmp ebx, 2
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ebp
mov dword [esp], eax
jne 0x614b20
mov ebx, 1
xor ebp, ebp
jmp 0x614b8c
mov ecx, dword [esp + 0xc]
and ecx, 0xfffffffe
mov ebx, 1
xor ebp, ebp
nop
mov edx, edi
and edx, 1
lea esi, [edx + ebx*2]
neg edx
mov eax, dword [esp]
movzx ebx, word [eax + ebx*2]
and edx, 0x7f0
xor edx, ebx
shr edx, 4
mov ebx, dword [0x6b81d4]
movzx edx, byte [ebx + edx]
add edx, ebp
mov ebx, edi
shl ebx, 0x1e
sar ebx, 0x1f
movzx ebp, word [eax + esi*2]
and ebx, 0x7f0
xor ebx, ebp
shr ebx, 4
mov eax, dword [0x6b81d4]
movzx ebp, byte [eax + ebx]
add ebp, edx
mov edx, edi
shr edx, 1
and edx, 1
lea ebx, [edx + esi*2]
shr edi, 2
add ecx, 0xfffffffe
jne 0x614b30
mov edx, dword [esp]
test byte [esp + 0xc], 1
mov ecx, dword [0x6b81d4]
je 0x614a70
and edi, 1
neg edi
movzx eax, word [edx + ebx*2]
and edi, 0x7f0
xor edi, eax
shr edi, 4
movzx eax, byte [ecx + edi]
add ebp, eax
jmp 0x614a70
mov ebp, ecx
mov dword [ecx + 0x10d98], 0
mov ebx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
cmp dword [ebp + 0x10ddc], 0x10
jb 0x614cc8
movzx eax, word [ebp + 0x70e6]
xor ecx, ecx
mov edx, dword [0x6b81d4]
nop word cs:[eax + eax]
mov esi, ecx
and esi, 1
mov edi, ecx
shr edi, 1
and edi, 1
movzx ebx, word [ebp + esi*2 + 0x70e8]
lea edi, [edi + esi*2]
add edi, 4
neg esi
and esi, 0x7f0
xor esi, eax
shr esi, 4
movzx esi, byte [edx + esi]
mov ebp, ecx
shl ebp, 0x1e
sar ebp, 0x1f
and ebp, 0x7f0
xor ebp, ebx
shr ebp, 4
movzx ebx, byte [edx + ebp]
add ebx, esi
mov esi, ecx
shl esi, 0x1d
sar esi, 0x1f
mov ebp, dword [esp + 0xf0]
movzx ebp, word [ebp + edi*2 + 0x70e4]
and esi, 0x7f0
xor esi, ebp
mov ebp, dword [esp + 0xf0]
shr esi, 4
movzx esi, byte [edx + esi]
add esi, ebx
mov ebx, ecx
shr ebx, 2
and ebx, 1
lea edi, [ebx + edi*2]
movzx edi, word [ebp + edi*2 + 0x70e4]
mov ebx, ecx
shl ebx, 0x1c
sar ebx, 0x1f
and ebx, 0x7f0
xor ebx, edi
shr ebx, 4
movzx edi, byte [edx + ebx]
add edi, esi
mov dword [ebp + ecx*4 + 0x10d9c], edi
inc ecx
cmp ecx, 0x10
jne 0x614c00
mov dword [ebp + 0x10ddc], 0
mov ebx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x10], eax
lea eax, [ebp + 0x1f8]
lea ecx, [esp + 0x8c]
push eax
push ecx
push dword [esp + 0xfc]
call fcn.00688000
mov ecx, dword [esp + 0x100]
add esp, 0xc
mov esi, dword [esp + 0xfc]
mov edi, dword [ecx + 0x14]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x18], edi
sub edx, edi
inc edx
mov dword [esp + 0xc], 0x111
cmp edx, 0x110
ja 0x614d32
mov dword [esp + 0xc], edx
cmp edx, 1
ja 0x614d32
mov dword [ebx], 0xffffffff
mov dword [esi], 1
jmp 0x616b31
mov edi, dword [ecx]
mov esi, dword [esp + 0x18]
lea edx, [edi + esi]
lea ecx, [edi + esi]
add ecx, 0xfffffffe
mov dword [esp], edi
movzx edi, word [edi + esi - 1]
mov ebx, dword [ebp + 0x1e8]
mov esi, ecx
mov dword [esp + 0x20], ebx
sub esi, ebx
movzx esi, word [esi]
xor ebx, ebx
mov dword [esp + 0x28], esi
cmp di, si
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], ecx
jne 0x614dfd
cmp eax, 3
jb 0x614db7
mov ebx, dword [esp + 0x18]
sub ebx, dword [esp + 0x20]
add ebx, dword [esp]
mov edi, 2
nop
movdqu xmm0, xmmword [edx + edi - 1]
movdqu xmm1, xmmword [ebx + edi - 2]
pcmpeqb xmm1, xmm0
pmovmskb ebp, xmm1
cmp ebp, 0xffff
jne 0x614de5
add edi, 0x10
cmp edi, eax
jb 0x614d90
mov ebx, eax
jmp 0x614df2
mov dword [esp + 0x60], eax
mov esi, ecx
mov ecx, dword [ebp + 0x1ec]
mov dword [esp + 0x38], ecx
sub esi, ecx
mov dword [esp + 0x14], 2
mov ebx, 2
mov edi, dword [esp + 0x1c]
cmp di, word [esi]
je 0x614e83
jmp 0x614e57
not ebp
tzcnt ebx, ebp
add ebx, edi
cmp ebx, eax
cmovae ebx, eax
mov ebp, dword [esp + 0xf0]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x60], ebx
mov esi, ecx
mov ecx, dword [ebp + 0x1ec]
mov dword [esp + 0x38], ecx
sub esi, ecx
cmp di, word [esi]
mov dword [esp + 0x14], ebx
jne 0x614e57
cmp eax, 3
jb 0x614e6b
mov ebx, dword [esp + 0x18]
sub ebx, dword [esp + 0x38]
add ebx, dword [esp]
mov edi, 2
nop dword [eax]
movdqu xmm0, xmmword [edx + edi - 1]
movdqu xmm1, xmmword [ebx + edi - 2]
pcmpeqb xmm1, xmm0
pmovmskb ebp, xmm1
cmp ebp, 0xffff
jne 0x614e6f
add edi, 0x10
cmp edi, eax
jb 0x614e30
mov ebx, eax
jmp 0x614e7c
mov dword [esp + 0x64], 0
mov dword [esp + 0x30], 0
xor ebx, ebx
jmp 0x614e96
mov ebx, eax
jmp 0x614e83
not ebp
tzcnt ebx, ebp
add ebx, edi
cmp ebx, eax
cmovae ebx, eax
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x64], ebx
mov esi, ebx
xor ebx, ebx
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x14]
seta bl
mov ecx, dword [ebp + 0x1f0]
mov esi, dword [esp + 0x24]
sub esi, ecx
mov edi, dword [esp + 0x1c]
cmp di, word [esi]
jne 0x614ee7
mov esi, eax
cmp eax, 3
jb 0x614f0d
mov edi, dword [esp + 0x18]
sub edi, ecx
add edi, dword [esp]
mov ebp, 2
movdqu xmm0, xmmword [edx + ebp - 1]
movdqu xmm1, xmmword [edi + ebp - 2]
pcmpeqb xmm1, xmm0
pmovmskb esi, xmm1
cmp esi, 0xffff
jne 0x614ef9
add ebp, 0x10
cmp ebp, eax
jb 0x614ec0
mov esi, eax
jmp 0x614f06
mov dword [esp + 0x68], 0
mov dword [esp + 0x2c], 0
jmp 0x614f21
not esi
tzcnt esi, esi
add esi, ebp
cmp esi, eax
cmovae esi, eax
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x68], esi
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + ebx*4 + 0x60]
mov esi, 2
cmova ebx, esi
mov edi, dword [ebp + 0x1f4]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x34], edi
sub esi, edi
mov edi, dword [esp + 0x1c]
cmp di, word [esi]
mov dword [esp + 0x50], ecx
jne 0x614f88
cmp eax, 3
mov edi, dword [esp + 0x10]
jb 0x614ffa
mov esi, dword [esp + 0x18]
sub esi, dword [esp + 0x34]
add dword [esp], esi
mov esi, 2
nop dword [eax + eax]
movdqu xmm0, xmmword [edx + esi - 1]
mov ebp, dword [esp]
movdqu xmm1, xmmword [ebp + esi - 2]
pcmpeqb xmm1, xmm0
pmovmskb ebp, xmm1
cmp ebp, 0xffff
jne 0x614fd8
add esi, 0x10
cmp esi, eax
jb 0x614f60
jmp 0x614ff3
mov dword [esp + 0x6c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xf4]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + ebx*4 + 0x60]
cmp eax, edi
jb 0x61501d
mov edx, dword [esp + 0xf8]
mov dword [edx], ebx
mov edx, dword [esp + 0xfc]
mov dword [edx], eax
dec eax
je 0x616b31
mov edi, eax
push eax
push ecx
mov esi, ecx
call dword [ecx + 0x2c]
add esp, 8
add dword [esi + 0x18], edi
jmp 0x616b31
not ebp
tzcnt eax, ebp
add eax, esi
cmp eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmovb ecx, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + ebx*4 + 0x60]
mov eax, 3
cmova ebx, eax
mov eax, dword [esp + ebx*4 + 0x60]
cmp eax, edi
jae 0x614fab
mov dword [esp + 4], eax
mov ebx, dword [esp + 8]
cmp ebx, edi
jae 0x61505d
mov edx, dword [esp + 0x1c]
cmp dl, byte [esp + 0x28]
je 0x615099
mov eax, dword [esp + 4]
or eax, ebx
cmp eax, 1
ja 0x615099
mov eax, dword [esp + 0xf8]
mov dword [eax], 0xffffffff
mov eax, dword [esp + 0xfc]
mov dword [eax], 1
jmp 0x616b31
mov eax, dword [esp + 0x8c]
mov eax, dword [ebp + eax*8 + 0x1f4]
add eax, 4
mov edx, dword [esp + 0xf8]
mov dword [edx], eax
mov eax, dword [esp + 0xfc]
mov dword [eax], ebx
dec ebx
je 0x616b31
push ebx
push ecx
mov esi, ecx
call dword [ecx + 0x2c]
add esp, 8
add dword [esi + 0x18], ebx
jmp 0x616b31
mov eax, dword [esp + 0x100]
mov esi, dword [ebp + 0x1e4]
mov dword [esp + 0x18], esi
mov dword [ebp + 0x10de8], esi
mov ecx, dword [ebp + 0xa94]
and ecx, eax
shl esi, 5
add esi, ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], esi
movzx edi, word [esi + ecx*2 + 0x6aa0]
shr edi, 4
mov ecx, dword [esp + 0x24]
movzx esi, byte [ecx]
mov ebx, dword [ebp + 0xa9c]
and ebx, eax
movzx ecx, byte [ebp + 0xa98]
mov al, 8
sub al, cl
shl ebx, cl
mov ecx, eax
shr esi, cl
add esi, ebx
movzx edx, dl
lea ecx, [esi + esi*2]
shl ecx, 9
or edx, 0x100
lea eax, [ecx + ebp]
add eax, 0xaa0
mov dword [esp], eax
mov eax, dword [0x6b81d4]
mov dword [esp + 0x24], edi
movzx eax, byte [eax + edi]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
cmp eax, 6
jbe 0x615185
movzx edi, byte [esp + 0x28]
xor ecx, ecx
mov ebx, 0x100
mov ebp, dword [0x6b81d4]
nop dword [eax + eax]
add edi, edi
mov esi, edi
and esi, ebx
mov eax, edx
shr eax, 8
add eax, ebx
add eax, esi
mov esi, dword [esp]
movzx eax, word [esi + eax*2]
movsx esi, dl
shr esi, 7
and esi, 0x7f0
xor esi, eax
shr esi, 4
movzx eax, byte [ebp + esi]
add ecx, eax
lea eax, [edx + edx]
mov esi, eax
xor esi, edi
not esi
and ebx, esi
cmp edx, 0x8000
mov edx, eax
jb 0x615140
jmp 0x6151c9
xor ecx, ecx
mov esi, edx
mov ebp, dword [0x6b81d4]
mov edi, dword [esp]
nop word cs:[eax + eax]
mov ebx, edx
and ebx, 1
neg ebx
shr esi, 1
and edx, 0xfffffffe
movzx eax, word [edi + edx]
and ebx, 0x7f0
xor ebx, eax
shr ebx, 4
movzx eax, byte [ebp + ebx]
add ecx, eax
mov edx, esi
cmp esi, 1
jne 0x6151a0
add ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xf0]
mov dword [edx + 0x10e24], ecx
mov dword [edx + 0x10e2c], 0xffffffff
mov byte [edx + 0x10e18], 0
movzx eax, word [esp + 0x24]
xor eax, 0x7f
movzx esi, byte [ebp + eax]
mov edi, dword [esp + 0x18]
movzx eax, word [edx + edi*2 + 0x6c20]
shr eax, 4
mov ebx, eax
mov dword [esp + 0x40], eax
xor eax, 0x7f
movzx edx, byte [ebp + eax]
mov dword [esp + 0x24], esi
add edx, esi
mov esi, 0xffffffff
mov eax, dword [esp + 0x28]
cmp byte [esp + 0x1c], al
mov dword [esp], edx
je 0x615244
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf0]
jmp 0x6152a2
mov eax, dword [esp + 0xf0]
movzx eax, word [eax + edi*2 + 0x6c38]
shr eax, 4
movzx ebx, byte [ebp + eax]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
movzx eax, word [edi + eax*2 + 0x6c80]
shr eax, 4
movzx eax, byte [ebp + eax]
add ebx, edx
add ebx, eax
cmp ebx, ecx
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf0]
jae 0x6152a2
mov dword [edx + 0x10e24], ebx
mov dword [edx + 0x10e2c], 0
xor esi, esi
mov edi, dword [esp + 4]
mov ebx, dword [esp + 8]
cmp ebx, edi
cmova edi, ebx
cmp edi, 1
ja 0x6152c1
mov dword [ecx], esi
mov dword [eax], 1
jmp 0x616b31
mov dword [edx + 0x10e28], 0
mov eax, dword [esp + 0x20]
mov dword [edx + 0x10e04], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 0x10e08], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0x10e0c], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x10e10], eax
lea ebp, [edi - 1]
lea esi, [edi - 2]
mov ecx, edi
and ebp, 3
mov dword [esp + 4], edi
je 0x615334
imul eax, edi, 0x2c
mov ecx, dword [esp + 0xf0]
add ecx, eax
add ecx, 0x10df8
xor ebx, ebx
nop dword [eax + eax]
mov dword [ecx], 0x40000000
inc ebx
add ecx, 0xffffffd4
cmp ebp, ebx
jne 0x615320
mov ecx, dword [esp + 4]
sub ecx, ebx
cmp esi, 3
jb 0x61537c
imul eax, ecx, 0x2c
mov edx, dword [esp + 0xf0]
lea esi, [eax + edx]
add esi, 0x10df8
nop dword [eax]
mov dword [esi], 0x40000000
mov dword [esi - 0x2c], 0x40000000
mov dword [esi - 0x58], 0x40000000
mov dword [esi - 0x84], 0x40000000
add ecx, 0xfffffffc
add esi, 0xffffff50
cmp ecx, 1
ja 0x615350
cmp dword [esp + 0x14], 2
jae 0x616b3c
mov edi, dword [esp + 0x30]
cmp edi, 2
jae 0x616bce
cmp dword [esp + 0x2c], 2
mov ebx, dword [esp + 4]
jae 0x616c5e
cmp dword [esp + 0xc], 2
mov edx, dword [esp + 0xf0]
mov esi, dword [0x6b81d4]
mov ebp, dword [esp]
jae 0x616cfe
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
cmp ecx, 2
mov ecx, 2
cmovae ecx, eax
cmp ecx, dword [esp + 8]
ja 0x615575
mov esi, ecx
mov eax, dword [0x6b81d4]
mov ecx, dword [esp + 0x40]
movzx eax, byte [eax + ecx]
mov dword [esp + 0x1c], eax
mov edx, 0xffffffff
mov ecx, dword [esp + 0xf0]
mov ebx, esi
nop dword [eax + eax]
mov eax, edx
inc edx
cmp ebx, dword [ecx + eax*8 + 0x200]
ja 0x615400
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x24], eax
imul eax, ebx, 0x2c
lea esi, [eax + ecx]
add esi, 0x10e00
imul eax, dword [esp + 0x10], 0x440
add eax, ecx
add eax, 0x7500
mov dword [esp + 0x18], eax
mov eax, esi
jmp 0x615460
mov eax, dword [esp]
add eax, 0x2c
inc ebp
mov ebx, ebp
mov ecx, dword [esp + 0xf0]
mov esi, dword [ecx + edx*8 + 0x1fc]
mov edi, ecx
lea ebp, [ebx - 2]
mov ecx, ebx
mov dword [esp + 0xc], ebx
cmp ebx, 6
mov ebx, 3
cmovb ebx, ebp
cmp esi, 0x7f
mov dword [esp], eax
ja 0x6154a0
shl ebx, 9
add ebx, edi
mov ecx, dword [ebx + esi*4 + 0x10594]
jmp 0x615504
test esi, esi
mov edi, 0x3c
mov eax, 0x24
cmovns edi, eax
mov ecx, 0x1e
mov eax, 0x12
cmovns ecx, eax
cmp esi, 0x80000
mov eax, 0xc
cmovb edi, eax
mov eax, 6
cmovb ecx, eax
mov eax, esi
shr eax, cl
mov ecx, dword [0x6b81d0]
movzx eax, byte [ecx + eax]
add eax, edi
shl ebx, 8
mov edi, dword [esp + 0xf0]
add ebx, edi
mov ecx, esi
and ecx, 0xf
mov ecx, dword [edi + ecx*4 + 0x10d9c]
add ecx, dword [ebx + eax*4 + 0x10194]
mov eax, dword [esp]
add ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
add ecx, dword [ebx + edi*4]
cmp ecx, dword [eax - 8]
mov ebx, dword [esp + 4]
jae 0x615550
mov dword [eax - 8], ecx
mov dword [eax - 4], 0
add esi, 4
mov dword [eax], esi
mov byte [eax - 0x14], 0
add ebp, 2
mov eax, dword [esp + 0xf0]
cmp ebp, dword [eax + edx*8 + 0x1f8]
je 0x615567
jmp 0x615450
add ebp, 2
mov eax, dword [esp + 0xf0]
cmp ebp, dword [eax + edx*8 + 0x1f8]
jne 0x615450
inc edx
cmp edx, dword [esp + 0x24]
mov eax, dword [esp]
jne 0x615453
cmp ebx, 0xffffffff
mov ecx, dword [esp + 0xf4]
je 0x616b31
mov ebp, dword [esp + 0xf0]
lea eax, [ebp + 0x1e8]
movdqu xmm0, xmmword [eax]
movdqu xmmword [esp + 0x60], xmm0
mov edi, 1
cmp ebx, 2
jb 0x616a75
lea eax, [ebp + 0x10e04]
mov dword [esp + 0xac], eax
lea eax, [ebp + 0x10e08]
mov dword [esp + 0xb0], eax
lea eax, [ebp + 0xa88]
mov dword [esp + 0xc0], eax
lea eax, [ebp + 0x1f8]
mov dword [esp + 0xbc], eax
lea eax, [ebp + 0x10e24]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x100]
not eax
mov dword [esp + 0x98], eax
lea eax, [ebp + 0x10ea8]
mov dword [esp + 0x58], eax
lea eax, [ebp + 0x10e00]
mov dword [esp + 0xa8], eax
lea eax, [ebp + 0xbd48]
mov dword [esp + 0xb8], eax
lea eax, [ebp + 0x7500]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x80], 0xffe
mov dword [esp + 0x94], 0xfffffffe
mov dword [esp + 0x54], 0
jmp 0x615680
mov ebp, dword [esp + 0xf0]
mov ebx, dword [esp + 4]
inc dword [esp + 0x54]
dec dword [esp + 0x80]
dec dword [esp + 0x98]
dec dword [esp + 0x94]
mov edi, dword [esp + 0x70]
cmp edi, ebx
mov ecx, dword [esp + 0xf4]
jae 0x616a75
push dword [esp + 0xbc]
push dword [esp + 0xc4]
push ecx
call fcn.00688000
mov ecx, dword [esp + 0x100]
add esp, 0xc
mov esi, eax
mov dword [ebp + 0xa8c], eax
mov edx, dword [ecx + 0x48]
mov eax, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x84], esi
cmp esi, edx
jae 0x616a75
mov eax, dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x20]
mov eax, edx
mov dword [esp + 0x1c], edx
sub ecx, edx
inc ecx
mov eax, 0xfff
sub eax, edi
cmp ecx, eax
mov dword [esp + 0x90], ecx
cmovb eax, ecx
mov dword [esp + 0x50], eax
mov ecx, dword [ebp + 0xa88]
imul esi, edi, 0x2c
mov eax, dword [ebp + esi + 0x10dfc]
cmp byte [ebp + esi + 0x10dec], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0x78], ecx
mov dword [esp], esi
je 0x61576d
cmp byte [ebp + esi + 0x10ded], 0
je 0x6157ae
mov ecx, dword [ebp + esi + 0x10df0]
imul edi, ecx, 0x2c
xor edx, edx
xor ebx, ebx
cmp dword [ebp + edi + 0x10de8], 7
mov edi, dword [ebp + esi + 0x10df4]
setb dl
setae bl
cmp edi, 4
lea ebp, [ebx + ebx*2 + 8]
lea ebx, [ebx + ebx*2 + 7]
cmovb ebx, ebp
lea edx, [edx + edx*2]
add edx, ebx
add edx, 0xfffffffa
cmp eax, dword [esp + 8]
jne 0x6157fe
mov ebp, dword [esp + 0xf0]
jmp 0x61577e
imul ecx, eax, 0x2c
mov edx, dword [ebp + ecx + 0x10de8]
lea ecx, [edi - 1]
cmp eax, ecx
jne 0x6157dd
mov eax, dword [esp]
cmp dword [ebp + eax + 0x10e00], 0
je 0x615857
xor eax, eax
cmp edx, 0xa
setb al
cmp edx, 4
lea eax, [eax + eax*2]
lea edx, [edx + eax - 6]
mov eax, 0
cmovb edx, eax
jmp 0x6158cc
lea ecx, [eax - 1]
imul edx, ecx, 0x2c
mov edx, dword [ebp + edx + 0x10de8]
xor ebx, ebx
cmp edx, 0xa
setb bl
cmp edx, 4
lea edi, [ebx + ebx*2]
lea edx, [edx + edi - 6]
mov edi, 0
cmovb edx, edi
cmp eax, dword [esp + 8]
mov eax, ecx
je 0x61577e
mov ecx, dword [esp]
mov edi, dword [ebp + ecx + 0x10e00]
xor ecx, ecx
cmp edi, 3
ja 0x615868
cmp edx, 7
setae cl
lea edx, [ecx + ecx*2]
add edx, 8
mov ecx, eax
jmp 0x615818
xor eax, eax
cmp edx, 7
setae al
lea edx, [eax + eax*2]
add edx, 8
cmp edi, 3
mov ebp, dword [esp + 0xf0]
ja 0x615876
mov dword [esp + 0x3c], edx
imul ebx, ecx, 0x2c
lea eax, [ebx + ebp]
mov eax, dword [eax + edi*4 + 0x10e04]
mov dword [esp + 0x60], eax
test edi, edi
je 0x61589c
mov eax, dword [esp + 0xac]
add eax, ebx
lea ebp, [edi*4]
push ebp
push eax
lea eax, [esp + 0x6c]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp edi, 2
jbe 0x61589e
jmp 0x6158c1
xor eax, eax
cmp edx, 7
setae al
lea edx, [eax*2 + 9]
jmp 0x6158cc
cmp edx, 7
setae cl
lea edx, [ecx + ecx*2]
add edx, 7
mov ecx, eax
add edi, 0xfffffffc
mov dword [esp + 0x60], edi
imul eax, ecx, 0x2c
movq xmm0, qword [ebp + eax + 0x10e04]
movq qword [esp + 0x64], xmm0
mov eax, dword [ebp + eax + 0x10e0c]
mov dword [esp + 0x6c], eax
jmp 0x6158cc
xor ebp, ebp
lea eax, [esp + 0x64]
add eax, ebp
mov ecx, dword [esp + 0xb0]
add ecx, ebp
add ebx, ecx
mov ecx, 0xc
sub ecx, ebp
push ecx
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebp, dword [esp + 0xf0]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
lea edi, [ecx + eax]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 8]
lea esi, [ecx + eax]
mov dword [esp + 0x88], esi
mov ecx, dword [esp]
lea eax, [ebp + ecx + 0x10de8]
mov dword [eax], edx
movdqu xmm0, xmmword [esp + 0x60]
movdqu xmmword [ebp + ecx + 0x10e04], xmm0
mov ecx, dword [ebp + 0xa98]
mov eax, dword [ebp + 0xa9c]
mov dword [esp + 0xa0], eax
and eax, esi
shl eax, cl
mov esi, edx
mov ebx, 8
mov dword [esp + 0xa4], ecx
sub ebx, ecx
movzx edx, byte [edi - 2]
mov dword [esp + 0x9c], ebx
mov ecx, ebx
shr edx, cl
add edx, eax
mov eax, dword [esp]
mov eax, dword [ebp + eax + 0x10df8]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x60]
mov eax, edi
mov dword [esp + 0x30], ecx
sub eax, ecx
movzx eax, byte [eax - 2]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xa94]
mov dword [esp + 0x48], eax
mov ecx, eax
mov eax, dword [esp + 0x88]
and ecx, eax
mov eax, esi
shl eax, 5
add eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
movzx ebx, word [eax + ecx*2 + 0x6aa0]
shr ebx, 4
lea eax, [edx + edx*2]
shl eax, 9
add eax, ebp
add eax, 0xaa0
mov dword [esp + 0x24], edi
movzx edx, byte [edi - 1]
mov ecx, dword [0x6b81d4]
mov dword [esp + 0x28], ebx
movzx ecx, byte [ecx + ebx]
mov dword [esp], ecx
mov dword [esp + 0x14], edx
add edx, 0x100
mov ecx, esi
mov dword [esp + 0x3c], esi
xor ebp, ebp
cmp esi, 6
jbe 0x615a27
mov esi, 0x100
mov edi, dword [esp + 0x10]
nop word cs:[eax + eax]
add edi, edi
mov ecx, edi
and ecx, esi
mov ebx, edx
shr ebx, 8
add ebx, esi
add ebx, ecx
movzx ecx, word [eax + ebx*2]
movsx ebx, dl
shr ebx, 7
and ebx, 0x7f0
xor ebx, ecx
shr ebx, 4
mov ecx, dword [0x6b81d4]
movzx ecx, byte [ecx + ebx]
add ebp, ecx
lea ecx, [edx + edx]
mov ebx, ecx
xor ebx, edi
not ebx
and esi, ebx
cmp edx, 0x8000
mov edx, ecx
jb 0x6159e0
jmp 0x615a58
mov ecx, edx
mov edi, dword [0x6b81d4]
nop
mov esi, edx
and esi, 1
neg esi
shr ecx, 1
and edx, 0xfffffffe
movzx ebx, word [eax + edx]
and esi, 0x7f0
xor esi, ebx
shr esi, 4
movzx esi, byte [edi + esi]
add ebp, esi
mov edx, ecx
cmp ecx, 1
jne 0x615a30
mov edi, dword [esp]
add edi, dword [esp + 0x18]
add edi, ebp
mov eax, dword [esp + 8]
lea ecx, [eax + 1]
mov dword [esp + 0x70], ecx
imul ebp, ecx, 0x2c
mov edx, dword [esp + 0xf0]
lea ecx, [edx + ebp]
add ecx, 0x10df8
mov esi, dword [edx + ebp + 0x10df8]
cmp edi, esi
mov dword [esp], edi
mov dword [esp + 0x38], ecx
jae 0x615ab7
mov dword [ecx], edi
mov dword [edx + ebp + 0x10dfc], eax
mov dword [edx + ebp + 0x10e00], 0xffffffff
mov byte [edx + ebp + 0x10dec], 0
mov al, 1
mov dword [esp + 0x34], eax
mov esi, edi
jmp 0x615abf
mov dword [esp + 0x34], 0
movzx ecx, word [esp + 0x28]
xor ecx, 0x7f
mov edi, dword [0x6b81d4]
movzx ecx, byte [edi + ecx]
mov eax, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x3c]
movzx ebx, word [edx + ecx*2 + 0x6c20]
shr ebx, 4
mov ecx, ebx
mov dword [esp + 0xc4], ebx
xor ebx, 0x7f
movzx ecx, byte [edi + ebx]
mov dword [esp + 0x18], eax
add ecx, eax
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + 0x10]
cmp bl, byte [esp + 0x14]
jne 0x615b89
mov ecx, dword [esp + 8]
cmp dword [edx + ebp + 0x10dfc], ecx
jae 0x615b21
cmp dword [edx + ebp + 0x10e00], 0
je 0x615b89
mov eax, dword [esp + 0x3c]
movzx ecx, word [edx + eax*2 + 0x6c38]
shr ecx, 4
movzx edx, byte [edi + ecx]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + eax*2 + 0x6c80]
shr ecx, 4
movzx ecx, byte [edi + ecx]
add edx, dword [esp + 0x7c]
add edx, ecx
cmp edx, esi
ja 0x615b89
mov ecx, dword [esp + 0xf0]
lea eax, [ecx + ebp]
add eax, 0x10dfc
mov esi, dword [esp + 0x38]
mov dword [esi], edx
mov edx, dword [esp + 8]
mov dword [eax], edx
mov dword [ecx + ebp + 0x10e00], 0
mov byte [ecx + ebp + 0x10dec], 0
mov al, 1
mov dword [esp + 0x34], eax
cmp dword [esp + 0x50], 2
jb 0x615649
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x50], ecx
mov esi, ecx
mov ecx, dword [esp + 0x50]
cmovb esi, ecx
cmp bl, byte [esp + 0x14]
mov ebp, dword [esp + 0xf0]
mov ebx, dword [esp + 4]
mov dword [esp + 0x14], esi
je 0x615e04
cmp byte [esp + 0x34], 0
jne 0x615e04
mov eax, dword [esp + 0x40]
lea ebx, [eax + 1]
cmp ebx, ecx
cmovae ebx, ecx
cmp ebx, 2
jb 0x615c2a
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x30]
add edx, dword [esp + 0xc]
mov eax, 1
nop dword [eax + eax]
mov ecx, dword [esp + 0x24]
movdqu xmm0, xmmword [ecx + eax - 1]
movdqu xmm1, xmmword [edx + eax - 2]
pcmpeqb xmm1, xmm0
pmovmskb esi, xmm1
cmp esi, 0xffff
jne 0x615c19
add eax, 0x10
cmp eax, ebx
jb 0x615bf0
jmp 0x615c26
not esi
tzcnt ecx, esi
add ecx, eax
cmp ecx, ebx
cmovb ebx, ecx
mov esi, dword [esp + 0x14]
lea eax, [ebx - 3]
cmp eax, 0xfffffffd
ja 0x615d49
mov dword [esp + 0x28], eax
xor eax, eax
mov ecx, dword [esp + 0x3c]
cmp ecx, 0xa
setb al
cmp ecx, 4
lea eax, [eax + eax*2]
lea ecx, [ecx + eax - 6]
mov eax, 0
cmovb ecx, eax
mov eax, dword [esp + 0x88]
lea esi, [eax + 1]
and esi, dword [esp + 0x48]
mov eax, ecx
shl eax, 5
add eax, ebp
mov dword [esp + 0x30], eax
movzx eax, word [eax + esi*2 + 0x6aa0]
mov dword [esp + 0x44], eax
movzx eax, word [ebp + ecx*2 + 0x6c20]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 8]
lea edi, [ebx + eax]
mov edx, dword [esp + 4]
mov dword [esp + 0x10], edi
cmp edi, edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], esi
jbe 0x615d52
lea ecx, [ebx + eax]
sub ecx, edx
mov eax, edx
test cl, 3
mov edi, dword [esp + 0x4c]
je 0x615cee
imul eax, edx, 0x2c
add eax, dword [esp + 0x5c]
mov ecx, dword [esp + 8]
add cl, bl
sub cl, dl
movzx esi, cl
and esi, 3
neg esi
xor ebp, ebp
mov dword [eax], 0x40000000
dec ebp
add eax, 0x2c
cmp esi, ebp
jne 0x615cd1
mov edx, dword [esp + 4]
mov eax, edx
sub eax, ebp
mov ebp, dword [esp + 0xf0]
mov ecx, dword [esp + 0x54]
add ecx, ebx
sub ecx, edx
mov esi, dword [esp + 0x10]
mov dword [esp + 4], esi
cmp ecx, 3
mov edx, dword [esp + 0x44]
jb 0x615d5e
imul esi, eax, 0x2c
sub eax, ebx
add esi, dword [esp + 0x58]
mov ecx, dword [esp + 8]
mov dword [esi - 0x84], 0x40000000
mov dword [esi - 0x58], 0x40000000
mov dword [esi - 0x2c], 0x40000000
mov dword [esi], 0x40000000
add eax, 4
add esi, 0xb0
cmp ecx, eax
jne 0x615d14
mov esi, dword [esp + 0x10]
mov dword [esp + 4], esi
jmp 0x615d5e
mov ebx, dword [esp + 4]
jmp 0x615e04
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
shr edx, 4
xor edx, 0x7f
mov ebx, esi
mov esi, dword [0x6b81d4]
movzx eax, byte [esi + edx]
mov edx, dword [esp]
add edx, eax
shr edi, 4
xor edi, 0x7f
movzx eax, byte [esi + edi]
add edx, eax
mov edi, dword [esp + 0x38]
imul eax, edi, 0x440
add eax, ebp
mov ecx, dword [esp + 0x28]
add edx, dword [eax + ecx*4 + 0xbd50]
mov eax, dword [esp + 0x30]
movzx eax, word [eax + edi*2 + 0x6c80]
mov ecx, dword [esp + 0x34]
movzx ecx, word [ebp + ecx*2 + 0x6c38]
shr ecx, 4
movzx ecx, byte [esi + ecx]
add edx, ecx
shr eax, 4
xor eax, 0x7f
movzx eax, byte [esi + eax]
add edx, eax
imul eax, ebx, 0x2c
cmp edx, dword [ebp + eax + 0x10df8]
jae 0x615dfc
lea ecx, [eax + ebp]
add ecx, 0x10df8
mov dword [ecx], edx
mov ecx, dword [esp + 0x70]
mov dword [ebp + eax + 0x10dfc], ecx
mov dword [ebp + eax + 0x10e00], 0
mov word [ebp + eax + 0x10dec], 1
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
add eax, ecx
dec eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffffe
mov dword [esp + 0x34], eax
xor eax, eax
cmp dword [esp + 0x3c], 7
setae al
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + edx*2 + 0x6c80]
mov dword [esp + 0xc8], ecx
lea eax, [eax + eax*2]
add eax, 8
mov dword [esp + 0xcc], eax
imul ecx, edx, 0x440
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x1c], ecx
add eax, ecx
mov dword [esp + 0xc], eax
xor ecx, ecx
mov dword [esp + 0x28], 2
mov eax, dword [esp + 8]
jmp 0x615e99
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, 4
je 0x61641e
mov dword [esp + 0x10], ecx
mov edi, dword [esp + ecx*4 + 0x60]
mov edx, dword [esp + 0x34]
sub edx, edi
mov ecx, dword [esp + 0x38]
movzx ecx, word [ecx]
mov dword [esp + 0x30], edx
cmp cx, word [edx]
jne 0x615e8b
mov dword [esp + 4], ebx
neg edi
mov ebx, esi
cmp esi, 3
jb 0x615f0e
mov ecx, dword [esp + 0x24]
add ecx, edi
mov edx, 2
nop
mov esi, dword [esp + 0x24]
movdqu xmm0, xmmword [esi + edx - 1]
movdqu xmm1, xmmword [ecx + edx - 2]
pcmpeqb xmm1, xmm0
pmovmskb esi, xmm1
cmp esi, 0xffff
jne 0x615efd
add edx, 0x10
mov ebx, dword [esp + 0x14]
cmp edx, ebx
jb 0x615ed0
jmp 0x615f0e
not esi
tzcnt ebx, esi
add ebx, edx
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
cmovae ebx, ecx
lea edx, [ebx + eax]
mov ecx, edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 4]
cmp ecx, edx
mov edx, ecx
mov dword [esp + 0x20], ebx
jae 0x615fd0
lea ecx, [ebx + eax]
sub ecx, edx
mov esi, edx
test cl, 3
je 0x615f68
imul edx, esi, 0x2c
add edx, dword [esp + 0x5c]
mov ecx, eax
add cl, bl
mov eax, esi
sub cl, al
movzx ecx, cl
and ecx, 3
neg ecx
xor esi, esi
nop
mov dword [edx], 0x40000000
dec esi
add edx, 0x2c
cmp ecx, esi
jne 0x615f50
mov edx, eax
sub edx, esi
mov esi, eax
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
lea ecx, [eax + ebx]
mov eax, dword [esp + 8]
sub ecx, esi
mov esi, dword [esp + 0x2c]
cmp ecx, 3
jb 0x615fd2
imul ecx, edx, 0x2c
sub edx, dword [esp + 0x20]
add ecx, dword [esp + 0x58]
nop dword [eax]
mov dword [ecx - 0x84], 0x40000000
mov dword [ecx - 0x58], 0x40000000
mov dword [ecx - 0x2c], 0x40000000
mov dword [ecx], 0x40000000
add edx, 4
add ecx, 0xb0
cmp eax, edx
jne 0x615f90
mov esi, dword [esp + 0x2c]
jmp 0x615fd2
mov esi, edx
mov dword [esp + 4], esi
mov edx, dword [esp + 0x3c]
movzx ecx, word [ebp + edx*2 + 0x6c38]
shr ecx, 4
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x616015
movzx ecx, cx
xor ecx, 0x7f
mov esi, dword [0x6b81d4]
movzx eax, byte [esi + ecx]
movzx ecx, word [ebp + edx*2 + 0x6c50]
shr ecx, 4
cmp ebx, 1
jne 0x616034
movzx esi, byte [esi + ecx]
mov edx, eax
jmp 0x616063
mov eax, dword [0x6b81d4]
movzx edx, byte [eax + ecx]
mov ecx, dword [esp + 0xc8]
movzx ecx, word [ecx]
shr ecx, 4
xor ecx, 0x7f
movzx esi, byte [eax + ecx]
jmp 0x616063
movzx ecx, cx
xor ecx, 0x7f
movzx esi, byte [esi + ecx]
add esi, eax
movzx ecx, word [ebp + edx*2 + 0x6c68]
mov edx, 2
sub edx, ebx
and edx, 0x7f0
xor edx, ecx
shr edx, 4
mov eax, dword [0x6b81d4]
movzx edx, byte [eax + edx]
add edx, dword [esp + 0x7c]
add edx, esi
mov dword [esp], edx
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x20]
lea ecx, [eax + ebp]
imul esi, ecx, 0x2c
add esi, dword [esp + 0xa8]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 4]
jmp 0x616099
dec ebp
add esi, 0xffffffd4
cmp ebp, 1
jbe 0x6160c0
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + ebp*4]
add ecx, dword [esp]
cmp ecx, dword [esi - 8]
jae 0x616090
mov dword [esi - 8], ecx
mov dword [esi - 4], eax
mov ecx, dword [esp + 0x10]
mov dword [esi], ecx
mov byte [esi - 0x14], 0
jmp 0x616090
mov esi, dword [esp + 0x20]
lea ecx, [esi + 1]
cmp dword [esp + 0x10], 0
cmove edx, ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x40]
add esi, edx
inc esi
mov edx, dword [esp + 0x50]
cmp esi, edx
cmovae esi, edx
mov edx, ecx
cmp ecx, esi
jae 0x61612c
add edi, dword [esp + 0x24]
mov ebp, ecx
nop
mov edx, dword [esp + 0x24]
movdqu xmm0, xmmword [edx + ebp - 1]
movdqu xmm1, xmmword [edi + ebp - 2]
pcmpeqb xmm1, xmm0
pmovmskb ebx, xmm1
cmp ebx, 0xffff
jne 0x61611b
add ebp, 0x10
cmp ebp, esi
jb 0x6160f0
mov edx, esi
jmp 0x616128
not ebx
tzcnt edx, ebx
add edx, ebp
cmp edx, esi
cmovae edx, esi
mov ebx, dword [esp + 4]
mov dword [esp + 0x4c], edx
sub edx, ecx
cmp edx, 2
jb 0x615e80
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x20]
lea edi, [eax + ebp]
mov ecx, edi
and ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x1c]
lea esi, [ebx + eax]
mov eax, dword [esi + ebp*4 + 0xbd48]
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0xcc]
shl esi, 5
add esi, ebx
movzx ecx, word [esi + ecx*2 + 0x6aa0]
shr ecx, 4
mov eax, dword [0x6b81d4]
movzx eax, byte [eax + ecx]
mov dword [esp + 0xd8], eax
mov edx, dword [esp + 0x38]
movzx esi, byte [edx + ebp - 1]
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + ebp]
mov dword [esp + 0x30], edi
and edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
shl edi, cl
mov ecx, dword [esp + 0x9c]
shr esi, cl
movzx edx, byte [edx + ebp]
add esi, edi
lea ecx, [esi + esi*2]
shl ecx, 9
lea edi, [ebx + ecx]
add edi, 0xaa0
or edx, 0x100
xor ecx, ecx
mov esi, 0x100
nop word cs:[eax + eax]
add eax, eax
mov ebp, eax
and ebp, esi
mov ebx, edx
shr ebx, 8
add ebx, esi
add ebx, ebp
movzx ebx, word [edi + ebx*2]
movsx ebp, dl
shr ebp, 7
and ebp, 0x7f0
xor ebp, ebx
shr ebp, 4
mov ebx, dword [0x6b81d4]
movzx ebx, byte [ebx + ebp]
add ecx, ebx
lea ebx, [edx + edx]
mov ebp, ebx
xor ebp, eax
not ebp
and esi, ebp
cmp edx, 0x8000
mov edx, ebx
jb 0x6161f0
mov eax, dword [esp + 0x30]
inc eax
and eax, dword [esp + 0x48]
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x30], eax
movzx eax, word [ebp + eax*2 + 0x6b40]
mov dword [esp + 0xd0], eax
movzx eax, word [ebp + 0x6c2a]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
add eax, edi
inc eax
mov edx, dword [esp + 4]
mov dword [esp + 0x20], eax
cmp edx, eax
jae 0x616339
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x4c]
add eax, ebx
sub eax, edx
mov esi, edx
test al, 3
je 0x6162d5
imul esi, edx, 0x2c
add esi, dword [esp + 0x5c]
mov eax, dword [esp + 8]
add al, bl
sub al, dl
movzx edi, al
and edi, 3
neg edi
xor ebp, ebp
nop dword [eax]
mov dword [esi], 0x40000000
dec ebp
add esi, 0x2c
cmp edi, ebp
jne 0x6162b0
mov edx, dword [esp + 4]
mov esi, edx
sub esi, ebp
mov ebp, dword [esp + 0xf0]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
add eax, ebx
sub eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 4], edx
cmp eax, 3
mov edx, dword [esp + 0x74]
jb 0x61633d
imul edi, esi, 0x2c
sub esi, ebx
add edi, dword [esp + 0x58]
mov eax, dword [esp + 8]
nop dword [eax + eax]
mov dword [edi - 0x84], 0x40000000
mov dword [edi - 0x58], 0x40000000
mov dword [edi - 0x2c], 0x40000000
mov dword [edi], 0x40000000
add esi, 4
add edi, 0xb0
cmp eax, esi
jne 0x616300
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x44]
jmp 0x61633d
mov edx, dword [esp + 0x74]
add edx, dword [esp]
add edx, dword [esp + 0xd8]
add edx, ecx
mov esi, dword [esp + 0xd0]
shr esi, 4
xor esi, 0x7f
mov ecx, dword [0x6b81d4]
movzx eax, byte [ecx + esi]
add edx, eax
mov eax, dword [esp + 0xd4]
shr eax, 4
xor eax, 0x7f
movzx eax, byte [ecx + eax]
add edx, eax
mov esi, dword [esp + 0x30]
imul eax, esi, 0x440
add eax, ebp
add edx, dword [eax + edi*4 + 0xbd48]
movzx eax, word [ebp + 0x6c42]
shr eax, 4
movzx eax, byte [ecx + eax]
add edx, eax
movzx eax, word [ebp + esi*2 + 0x6d20]
shr eax, 4
xor eax, 0x7f
movzx eax, byte [ecx + eax]
add edx, eax
imul ecx, dword [esp + 0x20], 0x2c
cmp edx, dword [ebp + ecx + 0x10df8]
jae 0x616411
mov esi, dword [esp + 0x2c]
inc esi
lea eax, [ecx + ebp]
add eax, 0x10df8
mov dword [eax], edx
mov dword [ebp + ecx + 0x10dfc], esi
mov dword [ebp + ecx + 0x10e00], 0
mov word [ebp + ecx + 0x10dec], 0x101
mov eax, dword [esp + 8]
mov dword [ebp + ecx + 0x10df0], eax
mov esi, dword [esp + 0x10]
mov dword [ebp + ecx + 0x10df4], esi
mov ecx, esi
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x14]
inc ecx
cmp ecx, 4
jne 0x615e99
jmp 0x61641e
mov ebx, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x615e87
mov edx, dword [esp + 0x84]
mov ecx, edx
cmp edx, esi
mov edx, dword [esp + 0x28]
jbe 0x61645d
xor ecx, ecx
nop word cs:[eax + eax]
mov eax, ecx
inc ecx
cmp esi, dword [ebp + eax*8 + 0x1f8]
ja 0x616440
mov dword [esp + 0x78], ecx
mov dword [ebp + ecx*8 + 0x1f0], esi
mov ecx, esi
mov eax, dword [esp + 8]
cmp ecx, edx
jb 0x615654
lea edi, [ecx + eax]
cmp ebx, edi
jae 0x61655d
mov edx, eax
mov eax, ebx
lea ebx, [ecx + edx]
sub ebx, eax
mov edx, eax
test bl, 3
mov esi, eax
je 0x6164e7
mov dword [esp], edi
imul edx, esi, 0x2c
add edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x84]
cmp edi, ebx
mov dword [esp + 4], esi
cmovb ebx, edi
mov esi, dword [esp + 0x80]
cmp ebx, esi
cmovae ebx, esi
mov esi, dword [esp + 0x90]
cmp ebx, esi
cmovae ebx, esi
add bl, byte [esp + 8]
sub bl, byte [esp + 4]
movzx esi, bl
and esi, 3
neg esi
xor edi, edi
nop word [eax + eax]
mov dword [edx], 0x40000000
dec edi
add edx, 0x2c
cmp esi, edi
jne 0x6164d0
mov esi, eax
mov edx, eax
sub edx, edi
mov edi, dword [esp]
add ecx, dword [esp + 0x54]
sub ecx, esi
cmp ecx, 3
jb 0x61655b
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x84]
cmp esi, eax
cmovae esi, eax
mov eax, dword [esp + 0x80]
cmp esi, eax
cmovae esi, eax
mov eax, dword [esp + 0x90]
cmp esi, eax
cmovae esi, eax
imul ecx, edx, 0x2c
sub edx, esi
add ecx, dword [esp + 0x58]
mov eax, dword [esp + 8]
nop word [eax + eax]
mov dword [ecx - 0x84], 0x40000000
mov dword [ecx - 0x58], 0x40000000
mov dword [ecx - 0x2c], 0x40000000
mov dword [ecx], 0x40000000
add edx, 4
add ecx, 0xb0
cmp eax, edx
jne 0x616530
mov ebx, edi
mov eax, dword [0x6b81d4]
mov ecx, dword [esp + 0xc4]
movzx eax, byte [eax + ecx]
mov esi, 0xffffffff
mov edx, dword [esp + 0x28]
nop word cs:[eax + eax]
mov ecx, esi
inc esi
cmp edx, dword [ebp + ecx*8 + 0x200]
ja 0x616580
xor ecx, ecx
cmp dword [esp + 0x3c], 7
setae cl
add dword [esp + 0x18], eax
lea eax, [ecx + ecx*2]
add eax, 7
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x98]
neg eax
mov dword [esp + 0x44], eax
inc dword [esp + 0x40]
mov eax, dword [esp + 0x94]
neg eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0xb4]
mov dword [esp + 0x1c], eax
jmp 0x6165f9
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
inc esi
cmp esi, eax
je 0x615654
mov dword [esp + 4], ebx
mov edi, dword [ebp + esi*8 + 0x1fc]
test edi, edi
mov ebx, 0x3c
mov eax, 0x24
cmovns ebx, eax
mov ecx, 0x1e
mov eax, 0x12
cmovns ecx, eax
cmp edi, 0x80000
mov eax, 0xc
cmovb ebx, eax
mov dword [esp + 0x14], ebx
mov eax, 6
cmovb ecx, eax
mov eax, edi
shr eax, cl
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], esi
mov ecx, dword [ebp + esi*8 + 0x1f8]
mov eax, edi
and eax, 0xf
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
mov esi, edx
add edx, eax
imul ebx, edx, 0x2c
add ebx, dword [esp + 0xa8]
mov dword [esp + 0xc], edi
lea edx, [edi + 4]
mov dword [esp + 0x10], edx
nop word cs:[eax + eax]
lea edi, [esi - 2]
mov edx, esi
mov dword [esp], esi
cmp esi, 6
mov ebp, 3
cmovb ebp, edi
mov edx, dword [esp + 0xc]
cmp edx, 0x7f
ja 0x6166b0
shl ebp, 9
add ebp, dword [esp + 0xf0]
mov esi, dword [ebp + edx*4 + 0x10594]
jmp 0x6166e3
mov eax, dword [0x6b81d0]
mov edx, dword [esp + 0x28]
movzx eax, byte [eax + edx]
add eax, dword [esp + 0x14]
shl ebp, 8
mov edx, dword [esp + 0xf0]
add ebp, edx
mov esi, dword [esp + 0x20]
mov esi, dword [edx + esi*4 + 0x10d9c]
add esi, dword [ebp + eax*4 + 0x10194]
mov eax, dword [esp + 8]
add esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp]
add esi, dword [edx + ebp*4]
cmp esi, dword [ebx - 8]
jae 0x616706
mov dword [ebx - 8], esi
mov dword [ebx - 4], eax
mov edx, dword [esp + 0x10]
mov dword [ebx], edx
mov byte [ebx - 0x14], 0
add edi, 2
cmp edi, ecx
mov ebp, dword [esp + 0xf0]
je 0x616720
add ebx, 0x2c
inc edi
mov esi, edi
jmp 0x616680
mov edx, dword [esp]
lea edi, [edx + 1]
mov eax, dword [esp + 0x40]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x50]
cmp ecx, eax
cmovae ecx, eax
mov eax, edi
mov dword [esp + 0x28], edi
cmp edi, ecx
jae 0x616797
mov ebx, dword [esp + 0xc]
neg ebx
add ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
nop
mov eax, dword [esp + 0x24]
movdqu xmm0, xmmword [eax + edi - 1]
movdqu xmm1, xmmword [ebx + edi - 2]
pcmpeqb xmm1, xmm0
pmovmskb ebp, xmm1
cmp ebp, 0xffff
jne 0x616780
add edi, 0x10
cmp edi, ecx
jb 0x616750
mov eax, ecx
jmp 0x61678d
not ebp
tzcnt eax, ebp
add eax, edi
cmp eax, ecx
cmovae eax, ecx
mov ebp, dword [esp + 0xf0]
mov edx, dword [esp]
mov ecx, edx
not ecx
add ecx, eax
cmp ecx, 2
jb 0x6165e0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
lea edi, [eax + edx]
mov eax, edi
and eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
shl ecx, 5
add ecx, ebp
mov dword [esp + 0x20], eax
movzx ecx, word [ecx + eax*2 + 0x6aa0]
shr ecx, 4
mov eax, dword [0x6b81d4]
movzx eax, byte [eax + ecx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + edx]
movzx ebp, byte [ebx + edx]
and edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
shl edi, cl
mov ecx, dword [esp + 0x9c]
shr eax, cl
mov ecx, dword [esp + 0x34]
movzx edx, byte [ecx + edx + 1]
add eax, edi
lea ecx, [eax + eax*2]
shl ecx, 9
mov eax, dword [esp + 0xf0]
add eax, ecx
add eax, 0xaa0
mov dword [esp + 0xc], eax
or edx, 0x100
xor ecx, ecx
mov edi, 0x100
nop dword [eax]
add ebp, ebp
mov eax, ebp
and eax, edi
mov ebx, edx
shr ebx, 8
add ebx, edi
add ebx, eax
mov eax, dword [esp + 0xc]
movzx eax, word [eax + ebx*2]
movsx ebx, dl
shr ebx, 7
and ebx, 0x7f0
xor ebx, eax
shr ebx, 4
mov eax, dword [0x6b81d4]
movzx eax, byte [eax + ebx]
add ecx, eax
lea eax, [edx + edx]
mov ebx, eax
xor ebx, ebp
not ebx
and edi, ebx
cmp edx, 0x8000
mov edx, eax
jb 0x616840
mov eax, dword [esp + 0x20]
inc eax
and eax, dword [esp + 0x48]
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x20], eax
movzx eax, word [ebp + eax*2 + 0x6b20]
movzx edx, word [ebp + 0x6c28]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x7c]
mov edi, dword [esp]
add edi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], edi
add edx, edi
mov ebx, dword [esp + 4]
mov dword [esp + 0x14], edx
cmp ebx, edx
jae 0x6169a0
mov dword [esp + 0x74], eax
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x2c]
add edx, eax
sub edx, ebx
mov edi, ebx
test dl, 3
je 0x61692d
imul edi, ebx, 0x2c
add edi, dword [esp + 0x5c]
mov edx, dword [esp + 8]
add dl, byte [esp + 0x2c]
sub dl, bl
movzx ebx, dl
and ebx, 3
neg ebx
xor ebp, ebp
nop word cs:[eax + eax]
mov dword [edi], 0x40000000
dec ebp
add edi, 0x2c
cmp ebx, ebp
jne 0x616910
mov ebx, dword [esp + 4]
mov edi, ebx
sub edi, ebp
mov ebp, dword [esp + 0xf0]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
add edx, eax
sub edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
cmp edx, 3
mov eax, dword [esp + 0x74]
jb 0x6169a4
imul ebx, edi, 0x2c
sub edi, dword [esp + 0x2c]
add ebx, dword [esp + 0x58]
mov edx, dword [esp + 8]
nop dword [eax]
mov dword [ebx - 0x84], 0x40000000
mov dword [ebx - 0x58], 0x40000000
mov dword [ebx - 0x2c], 0x40000000
mov dword [ebx], 0x40000000
add edi, 4
add ebx, 0xb0
cmp edx, edi
jne 0x616960
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
jmp 0x6169a4
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
sub edi, dword [esp]
add esi, dword [esp + 0x30]
add esi, ecx
shr eax, 4
xor eax, 0x7f
mov ecx, dword [0x6b81d4]
movzx eax, byte [ecx + eax]
add esi, eax
mov eax, dword [esp + 0xc]
shr eax, 4
xor eax, 0x7f
movzx eax, byte [ecx + eax]
add esi, eax
mov edx, dword [esp + 0x20]
imul eax, edx, 0x440
add eax, ebp
add esi, dword [eax + edi*4 + 0xbd44]
movzx eax, word [ebp + 0x6c40]
shr eax, 4
movzx eax, byte [ecx + eax]
add esi, eax
movzx eax, word [ebp + edx*2 + 0x6d00]
shr eax, 4
xor eax, 0x7f
movzx eax, byte [ecx + eax]
add esi, eax
imul eax, ebx, 0x2c
cmp esi, dword [ebp + eax + 0x10df8]
jae 0x616a57
lea ecx, [eax + ebp]
add ecx, 0x10df8
mov dword [ecx], esi
mov ecx, dword [esp + 0x3c]
mov dword [ebp + eax + 0x10dfc], ecx
mov dword [ebp + eax + 0x10e00], 0
mov word [ebp + eax + 0x10dec], 0x101
mov ecx, dword [esp + 8]
mov dword [ebp + eax + 0x10df0], ecx
mov ecx, dword [esp + 0x10]
mov dword [ebp + eax + 0x10df4], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x38]
inc esi
cmp esi, eax
jne 0x6165f9
jmp 0x615654
mov dword [ebp + 0x10de0], edi
imul eax, edi, 0x2c
mov ecx, dword [ebp + eax + 0x10dfc]
mov eax, dword [ebp + eax + 0x10e00]
mov ebx, edi
jmp 0x616ab8
imul esi, ebx, 0x2c
mov ecx, dword [ebp + esi + 0x10dfc]
mov esi, dword [ebp + esi + 0x10e00]
imul edi, ebx, 0x2c
mov dword [ebp + edi + 0x10e00], eax
mov dword [ebp + edi + 0x10dfc], edx
mov eax, esi
test ebx, ebx
je 0x616b0d
mov edx, ebx
mov ebx, ecx
imul edi, edx, 0x2c
cmp byte [ebp + edi + 0x10dec], 0
je 0x616a90
imul ecx, ebx, 0x2c
mov byte [ebp + ecx + 0x10dec], 0
lea ecx, [ebx - 1]
mov esi, 0xffffffff
cmp byte [ebp + edi + 0x10ded], 0
je 0x616aa1
mov dword [esp + 0x70], ebx
imul ebx, ecx, 0x2c
mov byte [ebp + ebx + 0x10dec], 0
movq xmm0, qword [ebp + edi + 0x10df0]
movq qword [ebp + ebx + 0x10dfc], xmm0
mov ebx, dword [esp + 0x70]
jmp 0x616aa1
mov eax, dword [ebp + 0x10dfc]
mov dword [ebp + 0x10de4], eax
mov ecx, dword [esp + 0xfc]
mov dword [ecx], eax
mov eax, dword [ebp + 0x10e00]
mov ecx, dword [esp + 0xf8]
mov dword [ecx], eax
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
movzx eax, word [eax + edi*2 + 0x6c80]
shr eax, 4
xor eax, 0x7f
mov esi, dword [0x6b81d4]
movzx eax, byte [esi + eax]
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
movzx ecx, word [edx + ecx*2 + 0x6c38]
shr ecx, 4
movzx ecx, byte [esi + ecx]
add ecx, dword [esp]
add ecx, eax
mov ebx, dword [esp + 0x14]
imul eax, ebx, 0x2c
lea esi, [eax + edx]
add esi, 0x10e00
imul eax, edi, 0x440
lea ebp, [eax + edx]
add ebp, 0xbd48
jmp 0x616bad
dec ebx
add esi, 0xffffffd4
cmp ebx, 1
jbe 0x615387
mov eax, dword [ebp + ebx*4]
add eax, ecx
cmp eax, dword [esi - 8]
jae 0x616ba0
mov dword [esi - 8], eax
mov dword [esi - 4], 0
mov dword [esi], 0
mov byte [esi - 0x14], 0
jmp 0x616ba0
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x18]
movzx eax, word [edx + ebx*2 + 0x6c38]
shr eax, 4
xor eax, 0x7f
mov esi, dword [0x6b81d4]
movzx ecx, byte [esi + eax]
movzx eax, word [edx + ebx*2 + 0x6c50]
shr eax, 4
movzx eax, byte [esi + eax]
add ecx, dword [esp]
add ecx, eax
imul eax, edi, 0x2c
lea esi, [eax + edx]
add esi, 0x10e00
imul eax, dword [esp + 0x10], 0x440
lea ebp, [eax + edx]
add ebp, 0xbd48
jmp 0x616c3d
dec edi
add esi, 0xffffffd4
cmp edi, 1
jbe 0x615394
mov eax, dword [ebp + edi*4]
add eax, ecx
cmp eax, dword [esi - 8]
jae 0x616c30
mov dword [esi - 8], eax
mov dword [esi - 4], 0
mov dword [esi], 1
mov byte [esi - 0x14], 0
jmp 0x616c30
mov edi, dword [esp + 0xf0]
mov edx, dword [esp + 0x18]
movzx eax, word [edi + edx*2 + 0x6c68]
shr eax, 4
mov esi, dword [0x6b81d4]
movzx ecx, byte [esi + eax]
movzx eax, word [edi + edx*2 + 0x6c50]
shr eax, 4
xor eax, 0x7f
movzx eax, byte [esi + eax]
movzx edx, word [edi + edx*2 + 0x6c38]
shr edx, 4
xor edx, 0x7f
movzx edx, byte [esi + edx]
add ecx, dword [esp]
add ecx, eax
add ecx, edx
imul eax, dword [esp + 0x2c], 0x2c
lea esi, [eax + edi]
add esi, 0x10e00
imul eax, dword [esp + 0x10], 0x440
lea ebp, [eax + edi]
add ebp, 0xbd48
mov edx, dword [esp + 0x2c]
jmp 0x616cdd
dec edx
add esi, 0xffffffd4
cmp edx, 1
jbe 0x6153a3
mov eax, dword [ebp + edx*4]
add eax, ecx
cmp eax, dword [esi - 8]
jae 0x616cd0
mov dword [esi - 8], eax
mov dword [esi - 4], 0
mov dword [esi], 2
mov byte [esi - 0x14], 0
jmp 0x616cd0
mov edi, dword [esp + 0x18]
movzx eax, word [edx + edi*2 + 0x6c50]
shr eax, 4
xor eax, 0x7f
movzx eax, byte [esi + eax]
movzx ecx, word [edx + edi*2 + 0x6c38]
shr ecx, 4
xor ecx, 0x7f
movzx ecx, byte [esi + ecx]
add ecx, eax
movzx eax, word [edx + edi*2 + 0x6c68]
mov edi, ebp
shr eax, 4
xor eax, 0x7f
movzx eax, byte [esi + eax]
add edi, eax
add edi, ecx
imul eax, dword [esp + 0xc], 0x2c
lea ecx, [eax + edx]
add ecx, 0x10e00
imul eax, dword [esp + 0x10], 0x440
lea esi, [eax + edx]
add esi, 0xbd48
mov eax, dword [esp + 0xc]
jmp 0x616d7f
mov eax, edx
dec eax
add ecx, 0xffffffd4
cmp eax, 1
jbe 0x6153be
mov edx, eax
mov eax, dword [esi + eax*4]
add eax, edi
cmp eax, dword [ecx - 8]
jae 0x616d70
mov dword [ecx - 8], eax
mov dword [ecx - 4], 0
mov dword [ecx], 3
mov byte [ecx - 0x14], 0
jmp 0x616d70