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

Disassembly:
push ebp
mov ebp, ecx
push edi
push esi
push ebx
add esp, 0xffffff80
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
mov esi, dword [eax + 0x6ac]
mov eax, dword [eax + 0x7dc]
test esi, esi
sete byte [esp + 0x1c]
test eax, eax
mov dword [esp + 0x14], eax
je 0x6fdf35d4
mov edx, eax
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
shl edx, 4
lea edx, [ebx + edx + 4]
add eax, 4
nop
lea esi, [esi]
mov dword [eax], 0xffffffff
add eax, 0x10
mov dword [eax - 8], 0xffffffff
cmp eax, edx
jne 0x6fdf35c0
mov ebx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x3c]
mov esi, dword [esp + 0x98]
movzx edx, byte [ebx]
movzx ecx, byte [eax]
mov eax, 1
lea esi, [esi + edx*4]
shl eax, cl
mov ecx, dword [esi*8 + 0x70765ac0]
mov edx, ecx
and ecx, 0xf
sar edx, 4
imul edx, eax
imul ecx, eax
sar edx, 2
mov dword [esp + 0x2c], edx
mov edx, dword [esi*8 + 0x70765ac4]
sar ecx, 2
mov dword [esp + 0x48], ecx
mov ecx, edx
and edx, 0xf
sar ecx, 4
imul ecx, eax
imul edx, eax
mov eax, dword [esp + 0x98]
sar ecx, 2
sar edx, 2
mov dword [esp + 0x18], ecx
mov ecx, ebp
mov dword [esp], eax
mov dword [esp + 0x3c], edx
call fcn.6fdf2c30
mov edx, dword [0x70e9f474]
lea ecx, [edx - 1]
sub esp, 4
mov esi, dword [esp + 0x94]
mov dword [esp + 0x40], eax
mov eax, dword [eax*4 + 0x70e9cf80]
movzx ebx, byte [ebx + esi]
test eax, ecx
mov byte [esp + 0x44], bl
mov dword [esp + 0x4c], ebx
je 0x6fdf3b10
mov esi, dword [eax*4 + 0x70e9cb7c]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x30]
mov ebx, dword [esi*4 + 0x70e9cf80]
xor eax, ebx
test eax, ecx
jne 0x6fdf3c20
mov edx, dword [ebp]
imul eax, dword [ebp + 0x18], 0xbc
mov ecx, dword [edx + 0x28]
add eax, ecx
mov esi, eax
test esi, esi
jne 0x6fdf3b2d
lea esi, [esi]
lea edi, [edi]
mov byte [esp + 0x38], 0
xor edi, edi
lea eax, [esp + 0x6c]
mov ecx, ebp
mov dword [esp + 8], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.6fdf2a90
mov edx, dword [0x70e9f474]
mov ecx, edx
neg ecx
sub esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
mov eax, dword [eax*4 + 0x70e9cf80]
test ecx, eax
jne 0x6fdf3bc0
mov ebx, dword [0x7046f744]
sub eax, edx
mov edx, 1
lea ecx, [ebx + ebx]
shl edx, cl
add eax, edx
mov eax, dword [eax*4 + 0x70e9cb80]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xb4]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x6fdf3c10
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
lea eax, [ebx + edx - 1]
sar eax, 2
sar edx, 2
cmp eax, edx
je 0x6fdf4100
cmp dword [esp + 0x98], 1
je 0x6fdf4123
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x44]
cmp byte [eax + ebx], 1
je 0x6fdf3c10
cmp byte [esp + 0x38], 0
jne 0x6fdf3c70
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x64]
movzx eax, byte [eax + ebx]
mov byte [esp + 0x4c], al
lea eax, [ebx*4]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0xa0]
movzx eax, byte [esp + 0x4c]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x44]
mov byte [ebx + edi], al
mov ebx, dword [esp + 0x20]
mov eax, edi
shl eax, 4
add eax, edx
cmp byte [esp + 0x1c], 0
mov edx, dword [ebx + 0x9c]
mov edx, dword [edx + ecx]
mov dword [eax], edx
mov edx, dword [ebx + 0x50]
mov ebx, dword [esp + 0x24]
movsx edx, byte [edx + ebx]
mov dword [eax + 4], edx
je 0x6fdf380c
mov ebx, ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xa0]
mov edx, dword [edx + ebx]
mov ebx, dword [esp + 0x24]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x54]
movsx edx, byte [edx + ebx]
mov dword [eax + 0xc], edx
inc edi
cmp edi, dword [esp + 0x14]
je 0x6fdf3f80
mov byte [esp + 0x44], 1
xor eax, eax
mov ecx, ebp
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
lea eax, [esp + 0x70]
mov dword [esp], eax
call fcn.6fdeedd0
sub esp, 8
test eax, eax
mov dword [esp + 0x34], eax
je 0x6fdf393b
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
add edx, ebx
sar edx, 2
sar ecx, 2
cmp edx, ecx
je 0x6fdf42b0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x70]
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x2c], eax
cmp byte [edx + eax], 1
je 0x6fdf393b
cmp byte [esp + 0x44], 0
je 0x6fdf4142
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov edx, dword [eax + 0x64]
movzx edx, byte [edx + ebx]
mov ebx, dword [esp + 0x34]
mov al, dl
mov byte [esp + 0x54], dl
mov edx, dword [ebx + 0x64]
mov ebx, dword [esp + 0x2c]
movzx ecx, byte [edx + ebx]
cmp al, cl
mov byte [esp + 0x50], cl
je 0x6fdf4451
lea ebx, [ebx*4]
mov dword [esp + 0x4c], ebx
movzx eax, byte [esp + 0x50]
mov edx, edi
mov ebx, dword [esp + 0xa0]
shl edx, 4
mov ecx, dword [esp + 0x34]
mov byte [ebx + edi], al
mov eax, dword [esp + 0x9c]
mov ebx, dword [ecx + 0x9c]
add edx, eax
mov eax, edx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x4c]
cmp byte [esp + 0x1c], 0
mov ebx, dword [ebx + edx]
mov dword [eax], ebx
mov ebx, dword [ecx + 0x50]
mov ecx, dword [esp + 0x2c]
movsx ebx, byte [ebx + ecx]
mov dword [eax + 4], ebx
je 0x6fdf3930
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x50]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + edx]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x54]
mov ebx, dword [esp + 0x2c]
movsx eax, byte [eax + ebx]
mov dword [ecx + 0xc], eax
lea esi, [esi]
inc edi
cmp edi, dword [esp + 0x14]
je 0x6fdf3f80
xor eax, eax
mov ecx, ebp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
lea eax, [esp + 0x74]
mov dword [esp], eax
call fcn.6fdeef20
sub esp, 8
test eax, eax
mov dword [esp + 0x2c], eax
je 0x6fdf3a3b
mov ebx, dword [esp + 0x18]
lea edx, [ebx - 1]
mov ecx, ebx
sar edx, 2
sar ecx, 2
cmp edx, ecx
je 0x6fdf4400
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x74]
mov edx, dword [ebx + 0x44]
mov dword [esp + 0x34], eax
cmp byte [edx + eax], 1
je 0x6fdf3a3b
cmp byte [esp + 0x38], 0
jne 0x6fdf4160
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
mov edx, dword [eax + 0x64]
movzx eax, byte [edx + ebx]
lea ebx, [ebx*4]
mov dword [esp + 0x40], ebx
mov byte [esp + 0x48], al
movzx eax, byte [esp + 0x48]
mov edx, edi
mov ebx, dword [esp + 0xa0]
shl edx, 4
mov ecx, dword [esp + 0x2c]
mov byte [ebx + edi], al
mov eax, dword [esp + 0x9c]
mov ebx, dword [ecx + 0x9c]
add edx, eax
mov eax, edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x40]
cmp byte [esp + 0x1c], 0
mov ebx, dword [ebx + edx]
mov dword [eax], ebx
mov ebx, dword [ecx + 0x50]
mov ecx, dword [esp + 0x34]
movsx ebx, byte [ebx + ecx]
mov dword [eax + 4], ebx
je 0x6fdf3a30
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + edx]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x54]
mov ebx, dword [esp + 0x34]
movsx eax, byte [eax + ebx]
mov dword [ecx + 0xc], eax
lea esi, [esi]
inc edi
cmp edi, dword [esp + 0x14]
je 0x6fdf3f80
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x94]
add eax, ebx
cmp edi, 3
mov dword [esp + 0x2c], eax
jbe 0x6fdf42d0
mov esi, dword [ebp + 4]
mov ebx, dword [esi]
cmp byte [ebx + 0x49], 0
je 0x6fdf3e63
mov eax, dword [esp + 0x98]
mov ecx, ebp
mov dword [esp], eax
call fcn.6fdf2d60
mov esi, dword [ebp + 0x18]
xor edx, edx
mov ecx, dword [ebp]
sub esp, 4
mov dword [esp + 0x78], edx
imul edx, esi, 0xbc
mov dword [esp + 0x18], esi
mov esi, dword [ecx + 0x28]
movzx ecx, byte [eax + 0x707622a0]
add edx, esi
mov esi, dword [edx + 0x20]
lea ecx, [esi + ecx + 4]
cmp ecx, dword [ebx + 4]
jae 0x6fdf3d60
mov ecx, dword [edx + 0x24]
movzx edx, byte [eax + 0x707621a0]
lea edx, [ecx + edx + 4]
cmp edx, dword [ebx + 8]
jae 0x6fdf3d60
mov ebx, dword [eax*4 + 0x70e9cf80]
mov ecx, dword [0x70e9f474]
mov eax, ebx
lea esi, [ecx - 1]
and eax, esi
cmp esi, eax
mov eax, ecx
setg dl
imul eax, esi
cmp ebx, eax
setl al
test dl, dl
je 0x6fdf464d
test al, al
je 0x6fdf4289
lea eax, [ebx + ecx + 1]
mov esi, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x70e9cb80]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
jmp 0x6fdf3d6e
lea eax, [eax + edx - 1]
mov esi, dword [ebp + 0xb8]
mov eax, dword [eax*4 + 0x70e9cb80]
test esi, esi
mov dword [esp + 0x28], eax
je 0x6fdf36c0
mov edx, dword [esp + 0x18]
mov eax, edx
dec eax
sar eax, 2
sar edx, 2
cmp eax, edx
je 0x6fdf4010
cmp dword [esp + 0x98], 1
je 0x6fdf4038
mov eax, dword [esi + 0x44]
mov edi, dword [esp + 0x28]
cmp byte [eax + edi], 1
je 0x6fdf36c0
mov eax, dword [esi + 0x64]
mov ebx, edi
cmp byte [esp + 0x1c], 0
movzx eax, byte [eax + edi]
mov edi, dword [esp + 0xa0]
mov byte [edi], al
lea eax, [ebx*4]
mov edi, dword [esp + 0x9c]
mov edx, dword [esi + 0x9c]
mov edx, dword [edx + eax]
mov dword [edi], edx
mov edx, dword [esi + 0x50]
movsx edx, byte [edx + ebx]
mov dword [edi + 4], edx
jne 0x6fdf3c30
cmp dword [esp + 0x14], 1
je 0x6fdf3c5c
mov byte [esp + 0x38], 1
mov edi, 1
jmp 0x6fdf36c7
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x20], ebx
mov ebx, eax
sub ebx, edx
mov ebx, dword [ebx*4 + 0x70e9cb80]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx*4 + 0x70e9cf80]
xor eax, edx
test eax, ecx
jne 0x6fdf40f2
mov edx, dword [ebp]
imul eax, dword [ebp + 0x18], 0xbc
mov ebx, dword [edx + 0x28]
add eax, ebx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x6fdf3741
lea esi, [esi]
mov byte [esp + 0x44], 0
jmp 0x6fdf381c
sub dword [esp + 0x28], esi
mov esi, ebp
jmp 0x6fdf3b2d
mov edx, dword [esi + 0xa0]
cmp dword [esp + 0x14], 1
mov eax, dword [edx + eax]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x54]
mov edi, dword [esp + 0x28]
movsx eax, byte [eax + edi]
mov edi, dword [esp + 0x9c]
mov dword [edi + 0xc], eax
jne 0x6fdf3bac
sub esp, 0xffffff80
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [esi + 0x64]
mov ebx, dword [esp + 0x28]
movzx ebx, byte [eax + ebx]
mov eax, dword [esp + 0x20]
mov cl, bl
mov byte [esp + 0x50], bl
mov eax, dword [eax + 0x64]
mov ebx, dword [esp + 0x24]
movzx eax, byte [eax + ebx]
shl ebx, 2
mov dword [esp + 0x44], ebx
cmp cl, al
mov byte [esp + 0x4c], al
jne 0x6fdf37a7
movzx ebx, cl
mov eax, ebx
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x28]
shl ebx, 2
mov dword [esp + 0x58], ebx
mov bl, al
and bl, 1
test bl, bl
je 0x6fdf3d03
mov ecx, dword [esp + 0x20]
mov ebx, dword [esi + 0x9c]
mov edx, dword [esp + 0x58]
mov eax, dword [ecx + 0x9c]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + ecx]
cmp dword [ebx + edx], eax
jne 0x6fdf37a7
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0x28]
mov ebx, dword [ecx + 0x50]
mov ecx, dword [esp + 0x24]
movzx ebx, byte [ebx + ecx]
cmp byte [eax + edx], bl
jne 0x6fdf37a7
test byte [esp + 0x54], 2
je 0x6fdf3817
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
mov ecx, dword [esi + 0xa0]
mov ebx, dword [esp + 0x58]
mov eax, dword [eax + 0xa0]
mov eax, dword [eax + edx]
cmp dword [ecx + ebx], eax
jne 0x6fdf3d4d
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x54]
mov ebx, dword [esp + 0x28]
mov eax, dword [eax + 0x54]
movzx eax, byte [eax + edx]
cmp byte [ecx + ebx], al
je 0x6fdf3817
movzx eax, byte [esp + 0x50]
mov byte [esp + 0x4c], al
jmp 0x6fdf37a7
mov eax, dword [0x70e9f474]
mov esi, 0xffffffff
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x98]
movzx ecx, byte [eax]
mov eax, 1
shl eax, cl
mov ecx, eax
mov eax, dword [ebp + 0x40]
movzx eax, byte [eax]
lea edx, [ebx + eax*4]
mov eax, dword [edx*8 + 0x70765ac0]
mov ebx, dword [edx*4 + 0x70765a40]
mov edx, dword [ebp + 0x28]
imul ebx, edx
mov edx, dword [ebp + 0x1c]
shr ebx, 4
add ebx, edx
mov edx, eax
sar edx, 4
and eax, 0xf
imul edx, ecx
imul ecx, eax
mov eax, dword [esp + 0x20]
sar edx, 5
sar ecx, 5
imul ecx, eax
mov eax, dword [ebx*4 + 0x70e9cf80]
add edx, eax
add ecx, edx
test esi, esi
mov eax, dword [ecx*4 + 0x70e9cb80]
mov dword [esp + 0x28], eax
js 0x6fdf41a0
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 8], ecx
mov ecx, ebp
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], eax
mov dword [esp + 4], eax
lea eax, [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 0x20], eax
call fcn.6fdf3320
sub esp, 0x14
test al, al
je 0x6fdf41b0
mov ebx, dword [esp + 0x9c]
mov eax, edi
mov edx, dword [esp + 0x78]
shl eax, 4
add eax, ebx
mov dword [eax], edx
mov edx, dword [esp + 0x7c]
cmp byte [esp + 0x1c], 0
mov dword [eax + 4], edx
jne 0x6fdf461e
mov dl, 1
mov eax, dword [esp + 0xa0]
mov byte [eax + edi], dl
inc edi
cmp edi, dword [esp + 0x14]
je 0x6fdf3f80
mov esi, dword [ebp + 4]
cmp byte [esp + 0x1c], 0
je 0x6fdf3f90
lea eax, [edi - 1]
imul eax, edi
test eax, eax
mov dword [esp + 0x18], eax
je 0x6fdf4068
mov dword [esp + 0x34], ebp
xor ebx, ebx
mov eax, 0xb73621
mov ecx, 0xedc984
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
jmp 0x6fdf3f01
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x9c]
shl esi, 4
add esi, eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov eax, dword [esp + 0x1c]
mov dword [esi], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 8]
mov dword [esi + 4], edx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x20]
mov byte [ebp + esi], 3
inc esi
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x20], esi
je 0x6fdf3f7d
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
inc ebx
mov eax, edi
cmp ebx, dword [esp + 0x18]
je 0x6fdf4060
mov edx, ecx
mov edi, eax
and edx, 3
shr ecx, 2
shr edi, 2
test byte [ebp + edx], 1
je 0x6fdf3ef4
and eax, 3
test byte [ebp + eax], 2
je 0x6fdf3ef4
mov esi, dword [esp + 0x9c]
shl edx, 4
shl eax, 4
add edx, esi
mov esi, dword [edx + 4]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x2c], esi
add eax, edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], edx
mov edx, dword [eax + edx*4 + 0x798]
cmp dword [eax + esi*4 + 0x754], edx
jne 0x6fdf3ea1
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 8]
mov eax, dword [esp + 0x28]
cmp dword [eax], esi
jne 0x6fdf3ea1
jmp 0x6fdf3ef4
mov edi, esi
nop
sub esp, 0xffffff80
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp edi, dword [esp + 0x14]
mov esi, dword [esi + 0x6c4]
jae 0x6fdf462a
mov ebx, dword [esp + 0xa0]
mov eax, edi
dec esi
shl eax, 4
mov edx, dword [esp + 0xa0]
xor ebp, ebp
add ebx, edi
mov edi, dword [esp + 0x9c]
lea ecx, [edi + eax + 4]
mov eax, dword [esp + 0x14]
add eax, edx
xor edx, edx
mov dword [esp + 0x18], eax
xor eax, eax
jmp 0x6fdf3fe0
mov byte [ebx], 1
lea edi, [edx + 1]
mov dword [ecx], eax
inc eax
cmp esi, edx
cmove eax, ebp
cmovne edx, edi
inc ebx
add ecx, 0x10
mov dword [ecx - 0x14], 0
cmp ebx, dword [esp + 0x18]
jne 0x6fdf3fe0
mov eax, dword [esp + 0x14]
sub esp, 0xffffff80
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x48]
lea eax, [edi + edx - 1]
sar eax, 2
sar edx, 2
cmp eax, edx
je 0x6fdf36c0
cmp dword [esp + 0x98], 1
jne 0x6fdf3b50
movzx eax, byte [esp + 0x44]
sub al, 6
cmp al, 1
jbe 0x6fdf36c0
cmp dword [esp + 0x4c], 2
jne 0x6fdf3b50
jmp 0x6fdf36c0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x6c4]
cmp dword [esi + 0x6c8], eax
cmovle eax, dword [esi + 0x6c8]
cmp dword [esp + 0x14], edi
jbe 0x6fdf462a
mov ebx, dword [esp + 0xa0]
lea esi, [eax - 1]
mov eax, edi
shl eax, 4
mov ecx, dword [esp + 0xa0]
xor ebp, ebp
add ebx, edi
mov edi, dword [esp + 0x9c]
lea edx, [edi + eax + 8]
mov eax, dword [esp + 0x14]
add eax, ecx
xor ecx, ecx
mov dword [esp + 0x18], eax
xor eax, eax
nop
lea esi, [esi]
mov dword [edx - 4], eax
lea edi, [ecx + 1]
mov dword [edx - 8], 0
mov byte [ebx], 3
mov dword [edx + 4], eax
inc eax
cmp ecx, esi
cmove eax, ebp
cmovne ecx, edi
inc ebx
add edx, 0x10
mov dword [edx - 0x10], 0
cmp ebx, dword [esp + 0x18]
jne 0x6fdf40c0
jmp 0x6fdf4002
sub dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebp
jmp 0x6fdf3741
mov edx, dword [esp + 0x3c]
mov eax, edx
dec eax
sar eax, 2
sar edx, 2
cmp eax, edx
je 0x6fdf3c10
cmp dword [esp + 0x98], 1
jne 0x6fdf3769
movzx eax, byte [esp + 0x44]
sub al, 4
cmp al, 1
jbe 0x6fdf3c10
cmp dword [esp + 0x4c], 1
jne 0x6fdf3769
jmp 0x6fdf3c10
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov edx, dword [eax + 0x64]
movzx eax, byte [edx + ebx]
mov byte [esp + 0x50], al
jmp 0x6fdf38b5
mov ebx, dword [esp + 0x28]
mov edx, dword [esi + 0x64]
mov ecx, dword [esp + 0x34]
movzx edx, byte [edx + ebx]
mov ebx, dword [esp + 0x2c]
mov al, dl
mov byte [esp + 0x4c], dl
mov edx, dword [ebx + 0x64]
movzx ebx, byte [edx + ecx]
cmp al, bl
mov byte [esp + 0x48], bl
je 0x6fdf4524
lea ebx, [ecx*4]
mov dword [esp + 0x40], ebx
jmp 0x6fdf39bf
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov ecx, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.6fdf3320
sub esp, 0x14
test al, al
jne 0x6fdf441f
cmp byte [esp + 0x1c], 0
je 0x6fdf3e60
mov dl, 2
xor ebx, ebx
test esi, esi
js 0x6fdf4239
mov eax, dword [esp + 0x2c]
mov ecx, ebp
mov dword [esp + 0xc], esi
mov esi, 1
mov dword [esp + 8], esi
mov byte [esp + 0x30], dl
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.6fdf3320
sub esp, 0x14
test al, al
movzx edx, byte [esp + 0x30]
jne 0x6fdf45fd
mov eax, dword [esp + 0x28]
mov ecx, ebp
mov byte [esp + 0x2c], dl
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.6fdf3320
sub esp, 0x14
test al, al
movzx edx, byte [esp + 0x2c]
jne 0x6fdf45fd
test ebx, ebx
je 0x6fdf3e60
jmp 0x6fdf3e49
lea eax, [ebx + ecx + 1]
and esi, eax
mov eax, dword [esi*4 + 0x70e9cb80]
mov esi, 0xffffffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
jmp 0x6fdf3d6e
mov ebx, dword [esp + 0x3c]
lea edx, [ebx - 1]
mov ecx, ebx
sar edx, 2
sar ecx, 2
cmp edx, ecx
jne 0x6fdf3861
jmp 0x6fdf393b
xor ecx, ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], ecx
mov ecx, ebp
mov dword [esp], eax
call fcn.6fdeecd0
sub esp, 8
test eax, eax
mov dword [esp + 0x30], eax
je 0x6fdf3a55
mov edx, dword [esp + 0x18]
mov eax, edx
dec eax
sar eax, 2
sar edx, 2
cmp eax, edx
je 0x6fdf4633
mov eax, dword [esp + 0x7c]
mov ebx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x44]
cmp byte [eax + ebx], 1
je 0x6fdf3a55
cmp byte [esp + 0x38], 0
je 0x6fdf45e5
mov eax, dword [esi + 0x64]
mov ebx, dword [esp + 0x28]
movzx ecx, byte [eax + ebx]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x38], cl
mov edx, dword [eax + 0x64]
movzx eax, byte [edx + ebx]
cmp cl, al
mov byte [esp + 0x34], al
je 0x6fdf4680
cmp byte [esp + 0x44], 0
je 0x6fdf437c
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx ebx, byte [esp + 0x34]
mov eax, dword [eax + 0x64]
cmp byte [eax + esi], bl
je 0x6fdf4743
mov eax, dword [esp + 0x18]
lea esi, [eax*4]
mov eax, dword [esp + 0xa0]
movzx ecx, byte [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x9c]
mov byte [eax + edi], cl
mov eax, edi
shl eax, 4
add eax, edx
mov edx, dword [ebx + 0x9c]
cmp byte [esp + 0x1c], 0
mov edx, dword [edx + esi]
mov dword [eax], edx
mov edx, dword [ebx + 0x50]
mov ebx, dword [esp + 0x18]
movsx edx, byte [edx + ebx]
mov dword [eax + 4], edx
je 0x6fdf43e6
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0xa0]
mov edx, dword [edx + esi]
mov esi, dword [esp + 0x18]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x54]
movsx edx, byte [edx + esi]
mov dword [eax + 0xc], edx
inc edi
cmp edi, dword [esp + 0x14]
jne 0x6fdf3a55
jmp 0x6fdf3f80
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
mov ecx, ebx
add edx, ebx
sar edx, 2
sar ecx, 2
cmp edx, ecx
jne 0x6fdf397d
jmp 0x6fdf3a3b
mov edx, dword [esp + 0x9c]
mov eax, edi
shl eax, 4
add eax, edx
mov edx, dword [esp + 0x78]
cmp byte [esp + 0x1c], 0
mov dword [eax], edx
mov edx, dword [esp + 0x7c]
mov dword [eax + 4], edx
je 0x6fdf3e49
mov dl, 3
mov ebx, 1
jmp 0x6fdf41f6
mov ecx, ebx
movzx ebx, al
mov dword [esp + 0x5c], ebx
lea ebx, [ecx*4]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x24]
shl ebx, 2
mov dword [esp + 0x58], ebx
mov bl, al
and bl, 1
test bl, bl
je 0x6fdf44c4
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov ebx, dword [ecx + 0x9c]
mov ecx, dword [eax + 0x9c]
mov eax, dword [esp + 0x4c]
mov eax, dword [ecx + eax]
cmp dword [ebx + edx], eax
jne 0x6fdf38c0
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov ebx, dword [ebx + 0x50]
mov eax, dword [ecx + 0x50]
mov ecx, dword [esp + 0x24]
movzx ebx, byte [ebx + edx]
cmp byte [eax + ecx], bl
jne 0x6fdf38c0
test byte [esp + 0x5c], 2
je 0x6fdf393b
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
mov edx, dword [ebx + 0xa0]
mov ebx, dword [esp + 0x4c]
mov eax, dword [eax + 0xa0]
mov ebx, dword [edx + ebx]
cmp dword [eax + ecx], ebx
jne 0x6fdf4516
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx + 0x54]
mov ebx, dword [esp + 0x2c]
mov eax, dword [eax + 0x54]
movzx ebx, byte [edx + ebx]
cmp byte [eax + ecx], bl
je 0x6fdf393b
movzx eax, byte [esp + 0x54]
mov byte [esp + 0x50], al
jmp 0x6fdf38c0
movzx ebx, al
mov dword [esp + 0x50], ebx
lea ebx, [ecx*4]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x28]
shl ebx, 2
mov dword [esp + 0x54], ebx
mov bl, al
and bl, 1
test bl, bl
je 0x6fdf458d
mov eax, dword [esp + 0x2c]
mov ebx, dword [esi + 0x9c]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + 0x9c]
mov eax, dword [esp + 0x40]
mov eax, dword [ecx + eax]
cmp dword [ebx + edx], eax
jne 0x6fdf39bf
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov eax, dword [esi + 0x50]
mov ecx, dword [esp + 0x28]
mov ebx, dword [ebx + 0x50]
movzx ebx, byte [ebx + edx]
cmp byte [eax + ecx], bl
jne 0x6fdf39bf
test byte [esp + 0x50], 2
je 0x6fdf3a3b
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
mov edx, dword [eax + 0xa0]
mov eax, dword [esi + 0xa0]
mov ebx, dword [edx + ebx]
cmp dword [eax + ecx], ebx
jne 0x6fdf45d7
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + 0x54]
mov eax, dword [esi + 0x54]
movzx ebx, byte [edx + ebx]
cmp byte [eax + ecx], bl
je 0x6fdf3a3b
movzx eax, byte [esp + 0x4c]
mov byte [esp + 0x48], al
jmp 0x6fdf39bf
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0x64]
movzx eax, byte [eax + esi]
mov byte [esp + 0x34], al
jmp 0x6fdf435c
mov ecx, dword [esp + 0x9c]
mov eax, edi
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0xc], ecx
jmp 0x6fdf3e4b
mov dl, 3
mov ebx, 1
jmp 0x6fdf41fa
mov dword [esp + 0x14], edi
jmp 0x6fdf4002
mov edx, dword [esp + 0x3c]
mov eax, edx
dec eax
sar eax, 2
sar edx, 2
cmp eax, edx
jne 0x6fdf430c
jmp 0x6fdf3a55
test al, al
je 0x6fdf466c
mov eax, dword [ebx*4 + 0x70e9cb84]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
lea esi, [eax + 1]
jmp 0x6fdf3d6e
xor eax, eax
mov esi, 0xffffffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
jmp 0x6fdf3d6e
movzx ebx, cl
mov eax, ebx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x18]
shl ebx, 2
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x28]
shl ebx, 2
mov dword [esp + 0x40], ebx
mov bl, al
and bl, 1
test bl, bl
je 0x6fdf46eb
mov ecx, dword [esp + 0x30]
mov ebx, dword [esi + 0x9c]
mov eax, dword [esp + 0x40]
mov edx, dword [ecx + 0x9c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [edx + ecx]
cmp dword [ebx + eax], ecx
jne 0x6fdf435c
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0x50]
mov ecx, dword [esp + 0x28]
mov ebx, dword [ebx + 0x50]
movzx ebx, byte [ebx + edx]
cmp byte [eax + ecx], bl
jne 0x6fdf435c
test byte [esp + 0x48], 2
je 0x6fdf3a55
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esi + 0xa0]
mov eax, dword [esp + 0x40]
mov ecx, dword [ecx + 0xa0]
mov ecx, dword [ecx + ebx]
cmp dword [edx + eax], ecx
jne 0x6fdf4735
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x54]
mov eax, dword [esp + 0x28]
mov esi, dword [ecx + 0x54]
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esi + ecx]
cmp byte [edx + eax], bl
je 0x6fdf3a55
movzx eax, byte [esp + 0x38]
mov byte [esp + 0x34], al
jmp 0x6fdf435c
movzx eax, bl
and bl, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
lea esi, [eax*4]
mov eax, dword [esp + 0x24]
shl eax, 2
test bl, bl
mov dword [esp + 0x28], eax
je 0x6fdf47a8
mov edx, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov ebx, dword [eax + 0x9c]
mov ecx, dword [ecx + 0x9c]
mov ebx, dword [ebx + esi]
cmp dword [ecx + edx], ebx
jne 0x6fdf4387
mov ecx, dword [esp + 0x20]
mov ebx, dword [eax + 0x50]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x50]
movzx ebx, byte [ebx + eax]
cmp byte [ecx + edx], bl
jne 0x6fdf4387
test byte [esp + 0x38], 2
je 0x6fdf3a55
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, dword [ebx + 0xa0]
mov eax, dword [eax + 0xa0]
mov ecx, dword [ecx + esi]
cmp dword [eax + edx], ecx
jne 0x6fdf4387
mov eax, dword [esp + 0x20]
mov ebx, dword [ebx + 0x54]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0x54]
movzx ebx, byte [ebx + edx]
cmp byte [eax + ecx], bl
je 0x6fdf3a55
jmp 0x6fdf4387