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

Disassembly:
sub esp, 0x8c
push ebx
mov ebx, dword [esp + 0x94]
push ebp
push esi
mov esi, dword [esp + 0xa0]
sub eax, esi
push edi
mov dword [esp + 0x24], eax
test eax, eax
jg 0x670884aa
push 0xf3
push str.d:qt4.8.1_src3rdpartyharfbuzz_srcharfbuzz_shaper.cpp
push str.nmarks___0
call dword [sym.imp.MSVCR90.dll__wassert]
add esp, 0xc
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x48], ecx
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
lea edi, [esp + 0x84]
push edi
push ecx
push eax
call edx
add esp, 0xc
cmp dword [ebx + 0x10], 4
jne 0x670884f1
mov eax, dword [esp + 0x88]
neg eax
cmp eax, dword [esp + 0x90]
jle 0x670884f1
mov dword [esp + 0x90], 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
add eax, edx
mov ebp, eax
sar ebp, 2
add esp, 8
add ebp, 0x40
cmp edi, 0x100
jle 0x67088538
add ebp, 0x100
jmp 0x6708853a
add ebp, edi
cmp dword [esp + 0x24], 2
mov dword [esp + 0x44], ebp
jne 0x6708861b
mov eax, dword [esp + 0x10]
mov al, byte [eax + esi*2 + 3]
cmp al, 0xe8
je 0x67088561
cmp al, 0xe4
je 0x67088561
cmp al, 0xe6
jne 0x6708861b
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + esi*2 + 5]
cmp al, 0x17
je 0x6708859d
cmp al, 0x18
je 0x6708859d
cmp al, 0x19
je 0x6708859d
cmp al, 0x1b
je 0x6708859d
cmp al, 0x1c
je 0x6708859d
cmp al, 0x1e
je 0x6708859d
cmp al, 0x1f
je 0x6708859d
cmp al, 0x21
je 0x6708859d
cmp al, 0x22
je 0x6708859d
cmp al, 0x23
je 0x6708859d
cmp al, 0x24
je 0x6708859d
cmp al, 0x6b
je 0x6708859d
cmp al, 0x7a
jne 0x6708861b
mov eax, dword [ebx + 0x18]
mov edx, dword [eax]
mov ecx, dword [esp + 0x48]
mov edx, dword [edx + 0x10]
mov esi, dword [esp + 0x90]
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0xa8]
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 + 0x54]
mov ecx, dword [ecx + 0x10]
add esi, dword [esp + 0x80]
lea edx, [esp + 0x74]
push edx
mov edx, dword [esp + 0xb4]
mov eax, dword [eax + edx*4 + 8]
push eax
mov eax, dword [ebx + 0x18]
push eax
call ecx
add esi, dword [esp + 0x8c]
lea eax, [edi + edi*4]
add eax, eax
lea edx, [esi + ebp*2]
add esp, 0x18
cmp edx, eax
jle 0x67088614
sub eax, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 0xa4]
movzx eax, byte [ebx + 0x14]
and eax, 0x80000001
jns 0x6708862b
dec eax
or eax, 0xfffffffe
inc eax
mov eax, dword [esp + 0x24]
setne byte [esp + 0x23]
xor edi, edi
cmp eax, 1
mov byte [esp + 0x17], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
jl 0x67088a19
lea ecx, [esi*4 + 4]
lea edx, [esi*8 + 8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], edx
lea edx, [ecx + esi*2 + 3]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x80], eax
jmp 0x67088694
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x50]
push edx
mov edx, dword [esp + 0x4c]
mov edx, dword [esi + edx]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov ecx, dword [esp + 0x58]
mov bl, byte [ecx]
xor esi, esi
add esp, 0xc
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ebp
cmp bl, 0xc8
jae 0x670887d3
mov dl, bl
sub dl, 0x1b
cmp dl, 9
ja 0x670886e7
cmp ebp, 3
jge 0x670886e7
inc ebp
mov dword [esp + 0x10], ebp
cmp bl, 0xa
jb 0x670886f5
cmp bl, 0x12
jbe 0x670887cf
cmp bl, 0x14
je 0x670887cf
cmp bl, 0x16
je 0x670887cf
cmp bl, 0x1d
je 0x670887cf
cmp bl, 0x20
je 0x670887cf
cmp bl, 0x17
je 0x670887cb
cmp bl, 0x1b
je 0x670887cb
cmp bl, 0x1c
je 0x670887cb
cmp bl, 0x1e
je 0x670887cb
cmp bl, 0x1f
je 0x670887cb
cmp bl, 0x21
jb 0x67088750
cmp bl, 0x24
jbe 0x670887cb
cmp bl, 9
je 0x670887c7
cmp bl, 0x67
je 0x670887c7
cmp bl, 0x76
je 0x670887c7
cmp bl, 0x18
je 0x670887c3
cmp bl, 0x6b
je 0x670887c3
cmp bl, 0x7a
je 0x670887c3
cmp bl, 0x19
jne 0x670887d3
mov bl, 0xe4
mov ebp, dword [esp + 0x54]
cmp bl, byte [esp + 0x17]
je 0x6708880f
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
jmp 0x67088813
mov bl, 0xe8
jmp 0x67088775
mov bl, 0xde
jmp 0x670887dd
mov bl, 0xe6
jmp 0x67088775
mov bl, 0xdc
jmp 0x670887dd
cmp bl, 0xdc
je 0x670887dd
cmp bl, 0xde
jne 0x67088775
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 1
push eax
call edx
mov ecx, dword [esp + 0x64]
add ecx, ebp
mov ebp, dword [esp + 0x5c]
add esp, 8
cmp ecx, eax
jle 0x67088779
mov dword [esp + 0x10], ebp
jmp 0x67088779
mov eax, dword [esp + 0x2c]
movzx ecx, bl
lea edx, [ecx - 0xc8]
mov ecx, dword [esp + 0x50]
cmp edx, 0x22
ja case.0x67088830.201
movzx edx, byte [edx + 0x67088a60]
jmp dword [edx*4 + 0x67088a24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x34]
sub edx, ebp
mov esi, edi
add edx, eax
sub esi, ecx
add dword [esp + 0x1c], edx
jmp 0x6708890f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x58]
sub edx, ebp
add edx, dword [esp + 0x2c]
mov esi, edi
add dword [esp + 0x1c], edx
cdq
sub eax, edx
sub esi, ecx
sar eax, 1
add esi, eax
jmp 0x6708890f
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x58]
mov edx, dword [esp + 0x34]
sub edx, ebp
sub esi, ecx
add edx, eax
add esi, edi
add dword [esp + 0x1c], edx
jmp 0x6708890f
mov esi, dword [esp + 0x10]
neg esi
jmp case.0x67088830.201
mov esi, dword [esp + 0x10]
jmp case.0x67088830.201
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, edi
sub esi, ecx
jmp 0x67088905
mov eax, dword [esp + 0x10]
neg eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
sub eax, ebp
sub eax, dword [esp + 0x5c]
mov esi, edi
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x58]
sub esi, ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
jmp 0x6708890f
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x58]
sub esi, ecx
add esi, edi
sub eax, ebp
sub eax, dword [esp + 0x5c]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
add ebp, dword [esp + 0x1c]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x38]
add ecx, esi
cmp edi, ecx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x68], edi
jl 0x6708894d
mov dword [esp + 0x68], ecx
cmp eax, ebp
mov dword [esp + 0x6c], eax
jl 0x67088959
mov dword [esp + 0x6c], ebp
mov edx, dword [esp + 0x58]
add ecx, edx
mov edx, dword [esp + 0x30]
add edi, edx
cmp edi, ecx
jle 0x6708896b
mov ecx, edi
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x68]
add eax, edx
mov edx, dword [esp + 0x5c]
add ebp, edx
sub ecx, edi
cmp eax, ebp
jg 0x67088983
mov eax, ebp
mov edx, dword [esp + 0x6c]
sub eax, edx
cmp byte [esp + 0x23], 0
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x17], bl
je 0x670889ce
mov dword [eax + edx], esi
mov edx, dword [ecx + 0x3c]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx + 4], esi
jmp 0x670889ea
sub esi, dword [esp + 0x94]
mov dword [eax + edx], esi
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x98]
mov esi, dword [ecx + 0x3c]
mov dword [eax + esi + 4], edx
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x4c], 2
mov dword [ecx + edx], 0
add eax, 8
add ecx, 4
sub dword [esp + 0x80], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
jne 0x67088690
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret