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

Disassembly:
sub esp, 0x94
mov eax, dword [0x67258980]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x98]
push ebx
push ebp
push esi
mov esi, edx
sub eax, esi
mov ebx, ecx
push edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], eax
test eax, eax
jg 0x67089fad
push 0xf3
push str.c:users_nugrohaexternal_toolkit_sourceqt4.8.2_src3rdpartyharfbuzz_srcharfbuzz_shaper.cpp
push str.nmarks___0
call dword [sym.imp.MSVCR100.dll__wassert]
add esp, 0xc
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
lea edi, [esp + 0x88]
push edi
push ecx
push eax
call edx
add esp, 0xc
cmp dword [ebx + 0x10], 4
jne 0x67089ff4
mov eax, dword [esp + 0x8c]
neg eax
cmp eax, dword [esp + 0x94]
jle 0x67089ff4
mov dword [esp + 0x94], 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 edi, edx
shr edi, 0x1f
add edi, edx
lea eax, [edi - 0x100]
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
add esp, 8
add ebp, 0x40
cmp edi, 0x100
jle 0x6708a03a
add ebp, 0x100
jmp 0x6708a03c
add ebp, edi
cmp dword [esp + 0x28], 2
mov dword [esp + 0x50], ebp
jne 0x6708a116
mov eax, dword [esp + 0x20]
mov al, byte [eax + esi*2 + 3]
cmp al, 0xe8
je 0x6708a063
cmp al, 0xe4
je 0x6708a063
cmp al, 0xe6
jne 0x6708a116
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + esi*2 + 5]
cmp al, 0x17
je 0x6708a09f
cmp al, 0x18
je 0x6708a09f
cmp al, 0x19
je 0x6708a09f
cmp al, 0x1b
je 0x6708a09f
cmp al, 0x1c
je 0x6708a09f
cmp al, 0x1e
je 0x6708a09f
cmp al, 0x1f
je 0x6708a09f
cmp al, 0x21
je 0x6708a09f
cmp al, 0x22
je 0x6708a09f
cmp al, 0x23
je 0x6708a09f
cmp al, 0x24
je 0x6708a09f
cmp al, 0x6b
je 0x6708a09f
cmp al, 0x7a
jne 0x6708a116
mov eax, dword [ebx + 0x18]
mov edx, dword [eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [edx + 0x10]
mov esi, dword [esp + 0x94]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4 + 4]
mov eax, dword [ebx + 0x18]
push ecx
push eax
call edx
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov eax, dword [esp + 0x58]
mov ecx, dword [ecx + 0x10]
add esi, dword [esp + 0x88]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0x20]
mov eax, dword [eax + edx*4 + 8]
push eax
mov eax, dword [ebx + 0x18]
push eax
call ecx
add esi, dword [esp + 0x94]
lea edi, [edi + edi*4]
add edi, edi
lea edx, [esi + ebp*2]
add esp, 0x18
cmp edx, edi
jle 0x6708a112
mov eax, edi
sub eax, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x10]
movzx eax, byte [ebx + 0x14]
and eax, 0x80000001
jns 0x6708a126
dec eax
or eax, 0xfffffffe
inc eax
mov eax, dword [esp + 0x28]
setne byte [esp + 0x27]
xor edi, edi
mov byte [esp + 0x17], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
cmp eax, 1
jl 0x6708a4fe
lea ecx, [esi*4 + 4]
lea edx, [esi*8 + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x48], edx
lea edx, [ecx + esi*2 + 3]
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], eax
jmp 0x6708a184
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
mov edx, dword [esp + 0x50]
mov edx, dword [esi + edx]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov ecx, dword [esp + 0x2c]
mov bl, byte [ecx]
xor esi, esi
add esp, 0xc
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ebp
cmp bl, 0xc8
jae 0x6708a2be
lea edx, [ebx - 0x1b]
cmp dl, 9
ja 0x6708a1d2
cmp ebp, 3
jge 0x6708a1d2
inc ebp
mov dword [esp + 0x10], ebp
cmp bl, 0xa
jb 0x6708a1e0
cmp bl, 0x12
jbe 0x6708a2ba
cmp bl, 0x14
je 0x6708a2ba
cmp bl, 0x16
je 0x6708a2ba
cmp bl, 0x1d
je 0x6708a2ba
cmp bl, 0x20
je 0x6708a2ba
cmp bl, 0x17
je 0x6708a2b6
cmp bl, 0x1b
je 0x6708a2b6
cmp bl, 0x1c
je 0x6708a2b6
cmp bl, 0x1e
je 0x6708a2b6
cmp bl, 0x1f
je 0x6708a2b6
cmp bl, 0x21
jb 0x6708a23b
cmp bl, 0x24
jbe 0x6708a2b6
cmp bl, 9
je 0x6708a2b2
cmp bl, 0x67
je 0x6708a2b2
cmp bl, 0x76
je 0x6708a2b2
cmp bl, 0x18
je 0x6708a2ae
cmp bl, 0x6b
je 0x6708a2ae
cmp bl, 0x7a
je 0x6708a2ae
cmp bl, 0x19
jne 0x6708a2be
mov bl, 0xe4
mov ebp, dword [esp + 0x5c]
cmp bl, byte [esp + 0x17]
je 0x6708a2f7
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
jmp 0x6708a2fb
mov bl, 0xe8
jmp 0x6708a260
mov bl, 0xde
jmp 0x6708a2c8
mov bl, 0xe6
jmp 0x6708a260
mov bl, 0xdc
jmp 0x6708a2c8
cmp bl, 0xdc
je 0x6708a2c8
cmp bl, 0xde
jne 0x6708a260
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 1
push eax
call edx
mov ecx, dword [esp + 0x6c]
add ecx, ebp
mov ebp, dword [esp + 0x64]
add esp, 8
cmp ecx, eax
jle 0x6708a264
mov dword [esp + 0x10], ebp
jmp 0x6708a264
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
movzx edx, bl
add edx, 0xffffff38
cmp edx, 0x22
ja case.0x6708a318.201
movzx edx, byte [edx + 0x6708a554]
jmp dword [edx*4 + 0x6708a518]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
sub edx, ebp
mov esi, edi
add edx, eax
sub esi, ecx
add dword [esp + 0x1c], edx
jmp 0x6708a3f7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
sub edx, ebp
add edx, dword [esp + 0x30]
mov esi, edi
add dword [esp + 0x1c], edx
cdq
sub eax, edx
sub esi, ecx
sar eax, 1
add esi, eax
jmp 0x6708a3f7
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
sub edx, ebp
sub esi, ecx
add edx, eax
add esi, edi
add dword [esp + 0x1c], edx
jmp 0x6708a3f7
mov esi, dword [esp + 0x10]
neg esi
jmp case.0x6708a318.201
mov esi, dword [esp + 0x10]
jmp case.0x6708a318.201
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, edi
sub esi, ecx
jmp 0x6708a3ed
mov eax, dword [esp + 0x10]
neg eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
sub eax, ebp
sub eax, dword [esp + 0x64]
mov esi, edi
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
sub esi, ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
jmp 0x6708a3f7
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x60]
sub esi, ecx
add esi, edi
sub eax, ebp
sub eax, dword [esp + 0x64]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add ebp, dword [esp + 0x1c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x3c]
add ecx, esi
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x70], edi
cmp edi, ecx
jl 0x6708a43b
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
cmp eax, ebp
jl 0x6708a447
mov dword [esp + 0x74], ebp
add ecx, dword [esp + 0x60]
add edi, dword [esp + 0x34]
cmp edi, ecx
jle 0x6708a455
mov ecx, edi
mov edi, dword [esp + 0x70]
add eax, dword [esp + 0x38]
add ebp, dword [esp + 0x64]
sub ecx, edi
cmp eax, ebp
jg 0x6708a469
mov eax, ebp
mov edx, dword [esp + 0x74]
sub eax, edx
cmp byte [esp + 0x27], 0
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x17], bl
je 0x6708a4b7
mov dword [eax + edx], esi
mov edx, dword [ecx + 0x3c]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx + 4], esi
jmp 0x6708a4d3
sub esi, dword [esp + 0x98]
mov dword [eax + edx], esi
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x9c]
mov esi, dword [ecx + 0x3c]
mov dword [eax + esi + 4], edx
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x20], 2
mov dword [ecx + edx], 0
add eax, 8
add ecx, 4
dec dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
jne 0x6708a180
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.67149782
add esp, 0x94
ret