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

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
mov esi, dword [esp + 0x9c]
sub eax, esi
push edi
mov dword [esp + 0x3c], eax
test eax, eax
jg 0x6707d9b3
push 0xf3
push str.c:iwmake_build_vs2008_commercial_________________padding__________________src3rdpartyharfbuzz_srcharfbuzz_shaper.cpp
push str.nmarks___0
call dword [sym.imp.MSVCR90.dll__wassert]
add esp, 0xc
mov ebx, dword [esp + 0x9c]
mov ebp, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
lea edx, [esp + 0x64]
push edx
mov edx, dword [ebp + esi*4]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x88], ebp
call eax
add esp, 0xc
cmp dword [ebx + 0x10], 4
jne 0x6707d9f9
mov eax, dword [esp + 0x68]
neg eax
cmp eax, dword [esp + 0x70]
jle 0x6707d9f9
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 0
push eax
call edx
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx - 0x100]
cdq
and edx, 3
add eax, edx
mov edi, eax
sar edi, 2
add esp, 8
add edi, 0x40
cmp ecx, 0x100
jle 0x6707da40
add edi, 0x100
jmp 0x6707da42
add edi, ecx
movzx eax, byte [ebx + 0x14]
and eax, 0x80000001
mov dword [esp + 0x48], edi
jns 0x6707da56
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [esp + 0x3c]
setne byte [esp + 0x1f]
xor esi, esi
cmp ecx, 1
mov byte [esp + 0x13], 0
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
jl 0x6707ddae
mov eax, dword [esp + 0xa0]
lea edx, [eax*4 + 4]
mov dword [esp + 0x44], edx
lea edx, [eax*8 + 8]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x20]
lea eax, [edx + eax*2 + 3]
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], ecx
jmp 0x6707dacf
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x9c]
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
mov edx, dword [esp + 0x48]
mov edx, dword [edx + ebp]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esp + 0x2c]
mov bl, byte [eax]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x18], ecx
mov edx, edi
cmp bl, 0xc8
jae 0x6707db87
mov al, bl
sub al, 0x1b
cmp al, 9
ja 0x6707db11
cmp edi, 3
jge 0x6707db11
lea edx, [edi + 1]
cmp bl, 0xa
jb 0x6707db1b
cmp bl, 0x12
jbe 0x6707db85
cmp bl, 0x14
je 0x6707db85
cmp bl, 0x16
je 0x6707db85
cmp bl, 0x1d
je 0x6707db85
cmp bl, 0x20
je 0x6707db85
cmp bl, 0x17
je 0x6707db81
cmp bl, 0x1b
je 0x6707db81
cmp bl, 0x1c
je 0x6707db81
cmp bl, 0x1e
je 0x6707db81
cmp bl, 0x1f
je 0x6707db81
cmp bl, 0x21
jb 0x6707db52
cmp bl, 0x24
jbe 0x6707db81
cmp bl, 9
je 0x6707db7d
cmp bl, 0x67
je 0x6707db7d
cmp bl, 0x76
je 0x6707db7d
cmp bl, 0x18
je 0x6707db79
cmp bl, 0x6b
je 0x6707db79
cmp bl, 0x7a
je 0x6707db79
cmp bl, 0x19
jne 0x6707db87
mov bl, 0xe4
jmp 0x6707db87
mov bl, 0xe8
jmp 0x6707db87
mov bl, 0xde
jmp 0x6707db87
mov bl, 0xe6
jmp 0x6707db87
mov bl, 0xdc
cmp bl, byte [esp + 0x13]
je 0x6707dbb9
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
movzx eax, bl
add eax, 0xffffff38
cmp eax, 0x22
ja case.0x6707dbd9.201
movzx eax, byte [eax + 0x6707ddf8]
jmp dword [eax*4 + 0x6707ddbc]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
sub edx, ebp
add edx, dword [esp + 0x28]
mov ecx, esi
sub ecx, edi
add dword [esp + 0x18], edx
jmp case.0x6707dbd9.201
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x30]
sub eax, ebp
add eax, dword [esp + 0x28]
mov ecx, esi
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x54]
sub ecx, edi
cdq
sub eax, edx
sar eax, 1
add ecx, eax
jmp case.0x6707dbd9.201
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
sub edx, ebp
add edx, dword [esp + 0x28]
sub ecx, edi
add ecx, esi
add dword [esp + 0x18], edx
jmp case.0x6707dbd9.201
neg edx
mov ecx, edx
jmp case.0x6707dbd9.201
neg edx
mov dword [esp + 0x18], edx
mov ecx, esi
sub ecx, edi
jmp 0x6707dc8f
neg edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x58]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x54]
sub edx, ebp
add dword [esp + 0x18], edx
cdq
sub eax, edx
mov ecx, esi
sub ecx, edi
sar eax, 1
add ecx, eax
jmp case.0x6707dbd9.201
neg edx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x54]
sub ecx, edi
add ecx, esi
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x58]
sub eax, ebp
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
add ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add edi, ecx
cmp esi, edi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], esi
jl 0x6707dcdd
mov dword [esp + 0x80], edi
cmp edx, ebp
jl 0x6707dce3
mov edx, ebp
mov eax, dword [esp + 0x54]
add edi, eax
mov eax, dword [esp + 0x2c]
add eax, esi
cmp eax, edi
jg 0x6707dcf5
mov eax, edi
sub eax, dword [esp + 0x80]
mov esi, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x58]
add ebp, eax
mov eax, dword [esp + 0x30]
add eax, esi
cmp eax, ebp
jg 0x6707dd14
mov eax, ebp
mov esi, dword [esp + 0x80]
sub eax, edx
cmp byte [esp + 0x1f], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], eax
mov byte [esp + 0x13], bl
je 0x6707dd62
mov eax, dword [esp + 0x9c]
mov edi, dword [eax + 0x3c]
mov dword [edx + edi], ecx
mov ecx, dword [eax + 0x3c]
mov edi, dword [esp + 0x18]
mov dword [edx + ecx + 4], edi
jmp 0x6707dd84
sub ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x9c]
mov eax, dword [edi + 0x3c]
mov dword [edx + eax], ecx
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x78]
mov ecx, dword [edi + 0x3c]
mov dword [edx + ecx + 4], eax
mov eax, edi
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x44]
add dword [esp + 0x20], 2
add dword [esp + 0x40], 8
mov dword [eax + edx], 0
add eax, 4
sub dword [esp + 0x3c], 1
mov dword [esp + 0x44], eax
jne 0x6707dac0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret