Function at 0x6d5d80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4c
push ebx
mov ebx, dword [esp + 0x54]
mov edx, 0xb
push ebp
push esi
imul esi, dword [esp + 0x70], 0x2c
mov eax, dword [ebx + 0xa88]
lea ebp, [edx - 1]
add esi, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xa8c]
mov dword [esp + 0x4c], eax
push edi
mov al, byte [esi + 0x10dec]
mov ecx, dword [esi + 0x10dfc]
mov byte [esp + 0x12], al
mov dword [esp + 0x3c], 8
mov dword [esp + 0x28], 7
test al, al
je 0x6d5e3b
dec ecx
cmp byte [esi + 0x10ded], 0
je 0x6d5e13
imul eax, dword [esi + 0x10df0], 0x2c
cmp dword [esi + 0x10df4], 4
mov eax, dword [eax + ebx + 0x10de8]
mov dword [esp + 0x2c], eax
jae 0x6d5e05
cmp dword [esp + 0x2c], 7
mov eax, edx
cmovl eax, dword [esp + 0x3c]
jmp 0x6d5e1d
cmp dword [esp + 0x2c], 7
mov eax, ebp
cmovl eax, dword [esp + 0x28]
jmp 0x6d5e1d
imul eax, ecx, 0x2c
mov eax, dword [eax + ebx + 0x10de8]
cmp eax, 3
jg 0x6d5e2c
mov dword [esp + 0x14], 0
jmp 0x6d5e49
cmp eax, 9
jg 0x6d5e36
sub eax, 3
jmp 0x6d5e45
sub eax, 6
jmp 0x6d5e45
imul eax, ecx, 0x2c
mov eax, dword [eax + ebx + 0x10de8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x74]
dec eax
cmp ecx, eax
jne 0x6d5ea6
cmp dword [esi + 0x10e00], 0
jne 0x6d5e75
xor eax, eax
cmp dword [esp + 0x14], 7
setge al
lea edi, [eax*2 + 9]
mov dword [esp + 0x14], edi
jmp 0x6d5f99
mov edi, dword [esp + 0x14]
cmp edi, 3
jg 0x6d5e89
xor edi, edi
mov dword [esp + 0x14], edi
jmp 0x6d5f99
cmp edi, 9
jg 0x6d5e9a
sub edi, 3
mov dword [esp + 0x14], edi
jmp 0x6d5f99
sub edi, 6
mov dword [esp + 0x14], edi
jmp 0x6d5f99
cmp byte [esp + 0x12], 0
je 0x6d5ee4
cmp byte [esi + 0x10ded], 0
je 0x6d5ee4
cmp dword [esp + 0x14], 7
mov eax, 8
mov ecx, dword [esi + 0x10df0]
mov edi, dword [esi + 0x10df4]
cmovl edx, eax
mov dword [esp + 0x14], edx
lea edx, [ecx + 0x623]
cmp edi, 4
jae 0x6d5f6b
jmp 0x6d5f06
mov edi, dword [esi + 0x10e00]
cmp edi, 4
jae 0x6d5f57
cmp dword [esp + 0x14], 7
mov eax, 8
cmovl edx, eax
mov dword [esp + 0x14], edx
lea edx, [ecx + 0x623]
mov ecx, dword [esp + 0x64]
imul ebp, edx, 0xb
lea eax, [edi + ebp]
mov eax, dword [ebx + eax*4]
mov dword [ecx], eax
mov ecx, 1
cmp edi, ecx
jb 0x6d5f3d
imul edx, edx, 0x2c
add edx, ebx
mov ebx, dword [esp + 0x64]
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, edi
jbe 0x6d5f27
mov ebx, dword [esp + 0x60]
cmp ecx, 4
jae 0x6d5f95
mov edi, dword [esp + 0x64]
lea eax, [ecx + ebp]
lea edx, [ebx + eax*4]
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, 4
jb 0x6d5f47
jmp 0x6d5f95
cmp dword [esp + 0x14], 7
lea edx, [ecx + 0x623]
cmovl ebp, dword [esp + 0x28]
mov dword [esp + 0x14], ebp
imul ecx, ecx, 0x2c
lea eax, [edi - 4]
mov edi, dword [esp + 0x64]
mov dword [edi], eax
mov eax, dword [ecx + ebx + 0x10e04]
mov dword [edi + 4], eax
imul eax, edx, 0x2c
mov eax, dword [eax + ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + ebx + 0x10e0c]
mov dword [edi + 0xc], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
add eax, 0x623
imul ecx, eax, 0x2c
mov dword [esi + 0x10de8], edi
mov eax, dword [edx]
mov dword [ecx + ebx], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x10e08], eax
mov eax, dword [edx + 8]
mov dword [esi + 0x10e0c], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0x10e10], eax
mov eax, dword [esp + 0x68]
mov ebp, dword [esi + 0x10df8]
mov dword [esp + 0x38], ebp
mov cl, byte [eax]
sub eax, dword [edx]
mov byte [esp + 0x13], cl
mov dl, byte [eax - 1]
mov eax, dword [ebx + 0xa94]
and eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
dec eax
mov byte [esp + 0x12], dl
mov dword [esp + 0x3c], eax
lea eax, [edi + 0x355]
shl eax, 4
add eax, dword [esp + 0x20]
cmp edi, 7
lea eax, [ebx + eax*2]
mov dword [esp + 0x2c], eax
movzx eax, cl
push eax
movzx eax, dl
push eax
setge al
movzx eax, al
push eax
mov eax, dword [esp + 0x48]
movzx eax, byte [eax]
push eax
push dword [esp + 0x80]
push ebx
call fcn.006d5680
mov ecx, dword [esp + 0x44]
add eax, ebp
mov ebp, dword [esi + 0x10e24]
add esp, 0x18
xor dl, dl
movzx ecx, word [ecx]
shr ecx, 4
movzx ecx, byte [ecx + 0x76d368]
add ecx, eax
mov dword [esp + 0x34], ecx
cmp ecx, ebp
jae 0x6d608a
mov eax, dword [esp + 0x74]
mov ebp, ecx
mov dword [esi + 0x10e24], ecx
mov dword [esi + 0x10e28], eax
mov byte [esi + 0x10e18], dl
mov dl, 1
mov dword [esi + 0x10e2c], 0xffffffff
mov eax, dword [esp + 0x2c]
mov dh, byte [esp + 0x13]
movzx eax, word [eax]
xor eax, 0x7f0
shr eax, 4
movzx ecx, byte [eax + 0x76d368]
lea eax, [edi + 0x3610]
add ecx, dword [esp + 0x38]
lea eax, [ebx + eax*2]
mov dword [esp + 0x54], eax
movzx eax, word [eax]
xor eax, 0x7f0
mov dword [esp + 0x58], ecx
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add eax, ecx
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x12]
cmp al, dh
jne 0x6d614c
mov ecx, dword [esp + 0x74]
cmp dword [esi + 0x10e28], ecx
jae 0x6d60ee
cmp dword [esi + 0x10e2c], 0
je 0x6d614c
lea eax, [edi + 0x364]
shl eax, 4
add eax, dword [esp + 0x20]
movzx eax, word [ebx + eax*2]
shr eax, 4
movzx ecx, byte [eax + 0x76d368]
movzx eax, word [ebx + edi*2 + 0x6c38]
add ecx, dword [esp + 0x30]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add eax, ecx
cmp eax, ebp
ja 0x6d6148
mov dword [esi + 0x10e24], eax
mov dl, 1
mov eax, dword [esp + 0x74]
mov dword [esi + 0x10e28], eax
mov dword [esi + 0x10e2c], 0
mov byte [esi + 0x10e18], 0
mov al, byte [esp + 0x12]
mov esi, dword [esp + 0x7c]
cmp esi, 2
jae 0x6d6161
mov eax, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov ebp, dword [esp + 0x78]
cmp esi, ebp
cmovb ebp, esi
mov dword [esp + 0x2c], ebp
test dl, dl
jne 0x6d6309
cmp al, dh
je 0x6d6309
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ecx, edx
sub ecx, dword [eax]
mov eax, dword [esp + 0x78]
dec ecx
inc eax
cmp esi, eax
cmovb eax, esi
push eax
push 1
push ecx
push edx
call fcn.006d6d70
add esp, 0x10
lea esi, [eax - 1]
cmp esi, 2
jb 0x6d6309
cmp edi, 3
jg 0x6d61cf
mov ecx, 0x3550
mov dword [esp + 0x24], 0x3640
mov edx, 0x6c20
mov dword [esp + 0x1c], 0x6c38
jmp 0x6d6219
mov eax, edi
shl eax, 4
cmp edi, 9
jg 0x6d61f8
lea ecx, [eax + 0x3520]
add eax, 0x3610
mov dword [esp + 0x24], eax
lea edx, [edi*2 + 0x6c1a]
lea eax, [edi*2 + 0x6c32]
jmp 0x6d6215
lea ecx, [eax + 0x34f0]
add eax, 0x35e0
mov dword [esp + 0x24], eax
lea edx, [edi*2 + 0x6c14]
lea eax, [edi*2 + 0x6c2c]
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x70]
inc edi
and edi, dword [ebx + 0xa94]
lea eax, [ecx + edi]
movzx eax, word [ebx + eax*2]
xor eax, 0x7f0
shr eax, 4
movzx ecx, byte [eax + 0x76d368]
movzx eax, word [edx + ebx]
add ecx, dword [esp + 0x34]
xor eax, 0x7f0
mov edx, dword [esp + 0x74]
shr eax, 4
inc edx
add edx, esi
movzx eax, byte [eax + 0x76d368]
add eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
cmp eax, edx
jae 0x6d628f
imul eax, eax, 0x2c
mov ecx, edx
mov dword [esp + 0x18], edx
add eax, 0x10df8
add eax, ebx
sub ecx, dword [esp + 0x6c]
nop
mov dword [eax + 0x2c], 0x40000000
lea eax, [eax + 0x2c]
sub ecx, 1
jne 0x6d6280
mov eax, dword [esp + 0x24]
add eax, edi
movzx eax, word [ebx + eax*2]
xor eax, 0x7f0
shr eax, 4
movzx edx, byte [eax + 0x76d368]
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + ebx]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add edx, eax
imul eax, edi, 0x110
mov edi, dword [esp + 0x74]
add eax, esi
add edx, dword [ebx + eax*4 + 0xbd48]
lea eax, [edi + 1]
add edx, dword [esp + 0x38]
add eax, esi
imul ecx, eax, 0x2c
add ecx, ebx
cmp edx, dword [ecx + 0x10df8]
jae 0x6d6311
lea eax, [edi + 1]
mov dword [ecx + 0x10df8], edx
mov dword [ecx + 0x10dfc], eax
mov dword [ecx + 0x10e00], 0
mov word [ecx + 0x10dec], 1
jmp 0x6d6311
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x68]
xor edi, edi
mov dword [esp + 0x24], 2
mov dword [esp + 0x1c], edi
mov dword [esp + 0x44], 0x35d0
nop dword [eax + eax]
mov eax, dword [esp + 0x64]
mov edx, esi
sub edx, dword [eax + edi*4]
mov ax, word [esi]
dec edx
mov dword [esp + 0x34], edx
cmp ax, word [edx]
jne 0x6d66c5
mov ecx, 2
cmp ebp, ecx
jbe 0x6d6385
lea eax, [esi + 2]
mov esi, edx
sub esi, dword [esp + 0x68]
nop dword [eax]
movups xmm1, xmmword [esi + eax]
movups xmm0, xmmword [eax]
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
xor edx, 0xffff
jne 0x6d6404
add ecx, 0x10
add eax, 0x10
cmp ecx, ebp
jb 0x6d6360
mov edx, ebp
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x18]
add ebp, edx
mov dword [esp + 0x38], ebp
cmp esi, ebp
jae 0x6d63bf
imul eax, esi, 0x2c
mov ecx, ebp
mov dword [esp + 0x18], ebp
add eax, 0x10df8
add eax, ebx
sub ecx, esi
nop dword [eax + eax]
mov dword [eax + 0x2c], 0x40000000
lea eax, [eax + 0x2c]
sub ecx, 1
jne 0x6d63b0
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x28], edx
test edi, edi
jne 0x6d6415
lea eax, [ebp + 0x364]
shl eax, 4
add eax, dword [esp + 0x20]
movzx eax, word [ebx + eax*2]
xor eax, 0x7f0
shr eax, 4
movzx esi, byte [eax + 0x76d368]
movzx eax, word [ebx + ebp*2 + 0x6c38]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add esi, eax
jmp 0x6d6483
bsf eax, edx
mov edx, ebp
add ecx, eax
cmp ecx, ebp
cmovb edx, ecx
jmp 0x6d6387
movzx eax, word [ebx + ebp*2 + 0x6c38]
xor eax, 0x7f0
shr eax, 4
movzx esi, byte [eax + 0x76d368]
cmp edi, 1
jne 0x6d6447
movzx eax, word [ebx + ebp*2 + 0x6c50]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add esi, eax
jmp 0x6d6483
movzx ecx, word [ebx + ebp*2 + 0x6c68]
mov eax, 2
sub eax, edi
shr ecx, 4
shr eax, 4
and eax, 0x7f
xor ecx, eax
movzx eax, word [ebx + ebp*2 + 0x6c50]
xor eax, 0x7f0
shr eax, 4
movzx ecx, byte [ecx + 0x76d368]
movzx eax, byte [eax + 0x76d368]
add esi, eax
add esi, ecx
imul eax, dword [esp + 0x38], 0x2c
imul ecx, dword [esp + 0x20], 0x110
mov ebp, dword [esp + 0x30]
add ebp, esi
mov dword [esp + 0x48], ebp
add eax, 0x10df8
add eax, ebx
add ecx, edx
add ebx, 0xbd48
lea ecx, [ebx + ecx*4]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x4c], ecx
mov esi, ecx
mov ecx, dword [esi]
add ecx, ebp
cmp ecx, dword [eax]
jae 0x6d64ca
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov byte [eax - 0xc], 0
dec edx
sub esi, 4
sub eax, 0x2c
cmp edx, 2
jae 0x6d64b6
mov ecx, dword [esp + 0x28]
test edi, edi
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x60]
lea ebp, [ecx + 1]
cmove eax, ebp
add esi, ebp
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x24], eax
cmovb esi, dword [esp + 0x7c]
cmp ebp, esi
jae 0x6d6549
mov edx, dword [esp + 0x68]
mov ecx, ebp
mov edi, dword [esp + 0x34]
sub edi, edx
lea eax, [edx + ebp]
movups xmm1, xmmword [eax + edi]
movups xmm0, xmmword [eax]
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
xor edx, 0xffff
jne 0x6d6535
add ecx, 0x10
add eax, 0x10
cmp ecx, esi
jb 0x6d6510
mov ebp, esi
jmp 0x6d6541
bsf eax, edx
mov ebp, esi
add ecx, eax
cmp ecx, esi
cmovb ebp, ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
or eax, 0xffffffff
mov dword [esp + 0x28], ebp
sub eax, ecx
add ebp, eax
cmp ebp, 2
jb 0x6d66bd
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
mov edi, dword [ebx + 0xa94]
add esi, ecx
movzx eax, byte [ecx + edx]
push eax
mov eax, dword [esp + 0x38]
movzx eax, byte [ecx + eax]
push eax
movzx eax, byte [ecx + edx - 1]
push 1
push eax
push esi
push ebx
call fcn.006d5680
mov edx, edi
add esp, 0x18
and edx, esi
mov ecx, 0x3600
cmp dword [esp + 0x14], 7
cmovl ecx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add edx, ecx
movzx ecx, word [ebx + edx*2]
shr ecx, 4
movzx edx, byte [ecx + 0x76d368]
add edx, eax
mov eax, dword [esp + 0x4c]
add edx, dword [eax]
lea eax, [esi + 1]
and eax, edi
mov esi, dword [esp + 0x28]
add esi, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
movzx eax, word [ebx + eax*2 + 0x6b40]
xor eax, 0x7f0
shr eax, 4
movzx ecx, byte [eax + 0x76d368]
movzx eax, word [ebx + 0x6c2a]
add ecx, edx
mov edx, dword [esp + 0x18]
xor eax, 0x7f0
shr eax, 4
movzx edi, byte [eax + 0x76d368]
add edi, ecx
cmp edx, esi
jae 0x6d662f
imul eax, edx, 0x2c
mov ecx, esi
mov dword [esp + 0x18], esi
add eax, 0x10df8
add eax, ebx
sub ecx, edx
nop dword [eax + eax]
mov dword [eax + 0x2c], 0x40000000
lea eax, [eax + 0x2c]
sub ecx, 1
jne 0x6d6620
mov ecx, dword [esp + 0x4c]
movzx eax, word [ebx + ecx*2 + 0x6d20]
xor eax, 0x7f0
shr eax, 4
movzx edx, byte [eax + 0x76d368]
movzx eax, word [ebx + 0x6c42]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add edx, eax
imul eax, ecx, 0x110
imul ecx, esi, 0x2c
mov esi, dword [esp + 0x68]
add eax, ebp
mov ebp, dword [esp + 0x2c]
add ecx, ebx
add edx, dword [ebx + eax*4 + 0xbd48]
add edx, edi
mov edi, dword [esp + 0x1c]
cmp edx, dword [ecx + 0x10df8]
jae 0x6d66c5
mov eax, dword [esp + 0x38]
inc eax
mov dword [ecx + 0x10df8], edx
mov dword [ecx + 0x10dfc], eax
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x10e00], 0
mov word [ecx + 0x10dec], 0x101
mov dword [ecx + 0x10df0], eax
mov dword [ecx + 0x10df4], edi
jmp 0x6d66c5
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x68]
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 4
jb 0x6d6330
mov edx, dword [esp + 0x50]
lea ecx, [ebx + 0x1f8]
cmp edx, ebp
jbe 0x6d6704
xor esi, esi
mov edx, ebp
cmp ebp, dword [ecx]
jbe 0x6d66f8
mov eax, ecx
nop dword [eax + eax]
lea eax, [eax + 8]
inc esi
cmp ebp, dword [eax]
ja 0x6d66f0
mov dword [ebx + esi*8 + 0x1f8], ebp
inc esi
mov dword [esp + 0x40], esi
cmp edx, dword [esp + 0x24]
jb 0x6d6ac5
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x18]
movzx eax, word [eax]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x74]
add edx, eax
cmp ebp, edx
jae 0x6d6769
imul eax, ebp, 0x2c
mov ecx, edx
mov dword [esp + 0x18], edx
add eax, 0x10df8
add eax, ebx
sub ecx, ebp
nop word [eax + eax]
mov dword [eax + 0x2c], 0x40000000
lea eax, [eax + 0x2c]
sub ecx, 1
jne 0x6d6750
mov eax, dword [esp + 0x74]
lea ecx, [ebx + 0x1f8]
mov ebp, dword [esp + 0x24]
xor edi, edi
mov dword [esp + 0x2c], edi
cmp ebp, dword [ecx]
jbe 0x6d6783
lea ecx, [ecx + 8]
inc edi
cmp ebp, dword [ecx]
ja 0x6d6777
mov dword [esp + 0x2c], edi
mov esi, dword [esp + 0x78]
lea edx, [ebp + 1]
add eax, ebp
mov dword [esp + 0x64], edx
imul edx, eax, 0x2c
lea edi, [edi + 0x3f]
imul eax, dword [esp + 0x20], 0x110
lea ecx, [ebx + edi*8]
mov edi, dword [esp + 0x78]
inc esi
add esi, ebp
mov dword [esp + 0x28], ecx
add ebp, 0x1d40
add edx, 0x10df8
add eax, ebp
add edx, ebx
mov ebp, dword [esp + 0x74]
sub ebp, edi
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x68]
lea eax, [ebx + eax*4]
sub ebp, edi
mov dword [esp + 0x50], ebp
mov ebp, 0xfffffffd
sub ebp, edi
not edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x78], edi
mov ebp, dword [ecx + 4]
add edi, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x38], edi
cmp edi, 6
jae 0x6d6806
mov ecx, dword [esp + 0x58]
add ecx, esi
jmp 0x6d680b
mov ecx, 3
cmp ebp, 0x80
jae 0x6d6821
shl ecx, 7
add ecx, ebp
mov ecx, dword [ebx + ecx*4 + 0x10594]
jmp 0x6d687a
mov eax, ebp
cmp ebp, 0x80000
jae 0x6d683a
shr eax, 6
movzx eax, byte [eax + 0x76d3e8]
add eax, 0xc
jmp 0x6d685e
cmp ebp, 0x80000000
jae 0x6d6851
shr eax, 0x12
movzx eax, byte [eax + 0x76d3e8]
add eax, 0x24
jmp 0x6d685e
shr eax, 0x1e
movzx eax, byte [eax + 0x76d3e8]
add eax, 0x3c
shl ecx, 6
add ecx, eax
mov eax, ebp
and eax, 0xf
mov ecx, dword [ebx + ecx*4 + 0x10194]
add ecx, dword [ebx + eax*4 + 0x10d9c]
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
add eax, ecx
add eax, dword [esp + 0x54]
mov dword [esp + 0x48], eax
cmp eax, dword [edx]
jae 0x6d689d
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 4], eax
lea eax, [ebp + 4]
mov dword [edx + 8], eax
mov byte [edx - 0xc], 0
mov ecx, dword [esp + 0x28]
cmp edi, dword [ecx]
jne 0x6d6aad
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
sub edi, ebp
mov ecx, dword [esp + 0x64]
dec edi
cmp dword [esp + 0x7c], eax
mov edx, ecx
mov dword [esp + 0x4c], edi
cmovb esi, dword [esp + 0x7c]
cmp ecx, esi
jae 0x6d6908
add eax, dword [esp + 0x50]
sub edi, dword [esp + 0x68]
movups xmm1, xmmword [edi + eax]
movups xmm0, xmmword [eax]
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
xor edx, 0xffff
jne 0x6d68f8
add ecx, 0x10
add eax, 0x10
cmp ecx, esi
jb 0x6d68d3
mov edx, esi
jmp 0x6d6904
bsf eax, edx
mov edx, esi
add ecx, eax
cmp ecx, esi
cmovb edx, ecx
mov ecx, dword [esp + 0x64]
or eax, 0xffffffff
mov dword [esp + 0x44], edx
sub eax, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x30], edx
cmp edx, 2
jb 0x6d6a8b
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
dec eax
mov edi, dword [esp + 0x38]
add ecx, eax
mov eax, dword [esp + 0x3c]
mov esi, dword [ebx + 0xa94]
and esi, ecx
movzx eax, byte [edx + eax]
push eax
mov eax, dword [esp + 0x50]
movzx eax, byte [edi + eax]
push eax
mov eax, dword [esp + 0x70]
push 1
movzx eax, byte [edx + eax - 2]
push eax
push ecx
push ebx
call fcn.006d5680
add esp, 0x18
mov edx, 0x35c0
cmp dword [esp + 0x14], 7
mov ecx, 0x35f0
cmovl ecx, edx
add eax, dword [esp + 0x48]
add ecx, esi
movzx ecx, word [ebx + ecx*2]
shr ecx, 4
movzx edx, byte [ecx + 0x76d368]
add edx, eax
lea eax, [esi + 1]
and eax, dword [ebx + 0xa94]
mov esi, dword [esp + 0x44]
add esi, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
movzx eax, word [ebx + eax*2 + 0x6b20]
xor eax, 0x7f0
shr eax, 4
movzx ecx, byte [eax + 0x76d368]
movzx eax, word [ebx + 0x6c28]
add ecx, edx
mov edx, dword [esp + 0x18]
xor eax, 0x7f0
shr eax, 4
movzx edi, byte [eax + 0x76d368]
add edi, ecx
cmp edx, esi
jae 0x6d69ff
imul eax, edx, 0x2c
mov ecx, esi
mov dword [esp + 0x18], esi
add eax, 0x10df8
add eax, ebx
sub ecx, edx
nop dword [eax]
mov dword [eax + 0x2c], 0x40000000
lea eax, [eax + 0x2c]
sub ecx, 1
jne 0x6d69f0
mov ecx, dword [esp + 0x4c]
movzx eax, word [ebx + ecx*2 + 0x6d00]
xor eax, 0x7f0
shr eax, 4
movzx edx, byte [eax + 0x76d368]
movzx eax, word [ebx + 0x6c40]
shr eax, 4
movzx eax, byte [eax + 0x76d368]
add edx, eax
imul eax, ecx, 0x110
imul ecx, esi, 0x2c
mov esi, dword [esp + 0x60]
add eax, dword [esp + 0x30]
add ecx, ebx
add edx, dword [ebx + eax*4 + 0xbd48]
add edx, edi
cmp edx, dword [ecx + 0x10df8]
jae 0x6d6a8f
mov eax, dword [esp + 0x20]
add eax, esi
mov dword [ecx + 0x10df8], edx
mov dword [ecx + 0x10dfc], eax
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x10df0], eax
lea eax, [ebp + 4]
mov dword [ecx + 0x10e00], 0
mov word [ecx + 0x10dec], 0x101
mov dword [ecx + 0x10df4], eax
jmp 0x6d6a8f
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
inc edi
add ecx, 8
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ecx
cmp edi, dword [esp + 0x40]
je 0x6d6ac5
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
add edx, 0x2c
inc dword [esp + 0x64]
add eax, 4
mov edi, dword [esp + 0x78]
inc esi
jmp 0x6d67e4
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret