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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x12a0
call fcn.67162470
sub rsp, rax
mov rax, qword [0x672bfab0]
xor rax, rsp
mov qword [rsp + 0x1290], rax
movsxd rbx, dword [rdx + 0x14]
movzx esi, r8b
mov r12, rdx
mov qword [rsp + 0x80], rdx
mov byte [rsp + 0x58], cl
mov dword [rsp + 0x4c], ebx
cmp ebx, 8
jl 0x670985ff
cmp ebx, 0x11
jle 0x67098619
lea rdx, str.e:qt4.8.4_src3rdpartyharfbuzz_srcharfbuzz_indic.cpp
lea rcx, str.script___HB_Script_Devanagari__script___HB_Script_Sinhala
mov r8d, 0x4b1
call qword [sym.imp.MSVCR100.dll__wassert]
movsxd rbp, dword [r12 + 0x10]
lea r14d, [rbx + 0xa]
mov eax, 0x80
lea edi, [rbp + 4]
mov byte [rsp + 0x40], 0
mov dword [rsp + 0x44], ebp
imul r14w, ax
lea eax, [r14 + 0x30]
lea r15d, [r14 + 0x4d]
add r14w, 0x3c
mov word [rsp + 0x30], ax
lea rax, [r12 + 0x3c]
mov word [rsp + 0x6e], r15w
mov word [rsp + 0x6c], r14w
mov qword [rsp + 0x88], rax
cmp dword [rax], edi
jge 0x67098670
mov dword [rax], edi
xor al, al
jmp 0x6709966f
lea rax, [rsp + 0xa90]
mov qword [rsp + 0x12e0], r13
mov qword [rsp + 0x38], rax
cmp edi, 0x200
jl 0x6709869e
movsxd rcx, edi
add rcx, rcx
call qword [sym.imp.MSVCR100.dll_malloc]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x890]
mov qword [rsp + 0x60], rax
cmp edi, 0x200
jl 0x670986c1
movsxd rcx, edi
call qword [sym.imp.MSVCR100.dll_malloc]
mov qword [rsp + 0x60], rax
lea rax, [0x67000000]
mov r8, rbp
mov qword [rsp + 0x78], rbx
movzx r13d, byte [rbx + rax + 0x1ee7c8]
add r8, r8
test sil, sil
mov rsi, qword [rsp + 0x38]
mov eax, 0x25cc
je 0x67098711
mov word [rsi], ax
mov ecx, dword [r12 + 0xc]
mov rax, qword [r12]
lea rdx, [rax + rcx*2]
lea rcx, [rsi + 2]
call sub.MSVCR100.dll_memcpy
mov r11d, ebp
inc r11d
mov dword [rsp + 0x44], r11d
jmp 0x67098729
mov ecx, dword [r12 + 0xc]
mov rax, qword [r12]
lea rdx, [rax + rcx*2]
mov rcx, rsi
call sub.MSVCR100.dll_memcpy
mov r11d, ebp
movsxd rax, r11d
mov ecx, 0x200c
cmp word [rsi + rax*2 - 2], cx
jne 0x67098740
dec r11d
mov dword [rsp + 0x44], r11d
xor r10d, r10d
or r12d, 0xffffffff
mov dword [rsp + 0x70], 0x900
mov dword [rsp + 0x68], 0x4ff
mov dword [rsp + 0x34], r10d
mov dword [rsp + 0x48], r12d
cmp r11d, 1
je 0x67098fc3
movzx edi, word [rsi]
xor bpl, bpl
movzx ecx, di
mov dword [rsp + 0x54], ebp
call fcn.67098550
cmp eax, 1
je 0x67098796
cmp dword [rsp + 0x4c], 9
jne 0x67098ca0
cmp eax, 7
jne 0x67098ca0
and r13b, 1
mov byte [rsp + 0x50], r13b
je 0x670987da
cmp r11d, 2
jle 0x670987da
cmp di, word [rsp + 0x30]
je 0x670987b8
mov eax, 0x9f0
cmp di, ax
jne 0x670987da
cmp word [rsi + 2], r15w
jne 0x670987da
movzx ecx, word [rsi + 4]
mov dil, 1
call fcn.67098550
movzx ebp, dil
cmp eax, 9
cmove ebp, r10d
mov dword [rsp + 0x54], ebp
mov rdi, qword [rsp + 0x60]
movzx eax, bpl
movsxd r8, r11d
neg al
mov rcx, rdi
mov ebx, r10d
sbb eax, eax
xor edx, edx
or r12d, 0xffffffff
and eax, 2
mov dword [rsp + 0x34], eax
call sub.MSVCR100.dll_memset
mov eax, dword [rsp + 0x4c]
cmp eax, 8
je 0x6709886c
cmp eax, 0xb
je 0x6709886c
movsxd rax, dword [rsp + 0x34]
mov r11d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x38]
mov edi, eax
cmp eax, r11d
jge 0x67098949
mov rcx, qword [rsp + 0x60]
lea r8, [r10 + rax*2]
lea rsi, [rax + rcx]
movzx ecx, word [r8]
call fcn.67098550
mov byte [rsi], al
cmp al, 1
jne 0x6709884a
mov ebx, edi
jmp 0x67098855
test r12d, r12d
jns 0x67098855
cmp al, 4
cmove r12d, edi
inc edi
add r8, 2
inc rsi
cmp edi, r11d
jl 0x67098837
mov eax, dword [rsp + 0x34]
jmp 0x67098949
movsxd rax, dword [rsp + 0x34]
mov r11d, dword [rsp + 0x44]
xor r8b, r8b
mov edx, eax
cmp eax, r11d
jge 0x67098944
movzx r14d, word [rsp + 0x30]
mov ebp, 0x200c
add rdi, rax
lea rsi, [rsi + rax*2]
mov r9d, 1
lea r15, [0x67000000]
lea r13d, [rbp + 1]
mov r10d, 0x900
nop dword [rax]
movzx ecx, word [rsi]
movzx eax, cx
sub ax, r10w
cmp ax, word [rsp + 0x68]
ja 0x670988cf
movzx eax, cx
movzx ecx, byte [rax + r15 + 0x1ed4d0]
jmp 0x670988f3
mov eax, 0x25cc
cmp cx, ax
jne 0x670988de
mov ecx, r9d
jmp 0x670988f3
cmp cx, bp
je 0x670988ee
cmp cx, r13w
mov ecx, 0xa
jne 0x670988f3
mov ecx, 9
mov byte [rdi], cl
cmp cl, r9b
jne 0x67098915
mov ebx, edx
test r8b, r8b
jne 0x67098910
cmp word [rsi], r14w
jne 0x67098910
movzx r8d, r9b
mov byte [rdi], 8
jmp 0x6709891c
xor r8b, r8b
jmp 0x6709891c
cmp cl, 4
cmove r12d, edx
inc edx
add rsi, 2
inc rdi
cmp edx, r11d
jl 0x670988b0
mov ebp, dword [rsp + 0x54]
movzx r13d, byte [rsp + 0x50]
movzx r14d, word [rsp + 0x6c]
movzx r15d, word [rsp + 0x6e]
mov eax, dword [rsp + 0x34]
mov r10, qword [rsp + 0x38]
lea r9d, [r11 - 1]
xor esi, esi
lea edx, [rsi + 4]
mov edi, r9d
cmp r9d, eax
jl 0x67098a0e
mov r8, qword [rsp + 0x60]
movsxd rcx, edi
movzx eax, byte [rcx + r8]
cmp al, 1
je 0x67098982
cmp al, 9
jne 0x67098a02
cmp dword [rsp + 0x4c], 0xf
je 0x67098a02
cmp edi, r9d
jge 0x67098997
cmp al, 9
jne 0x67098997
cmp byte [rcx + r8 + 1], 1
je 0x67098a2e
movzx ecx, word [r10 + rcx*2]
movzx eax, cx
sub ax, word [rsp + 0x70]
cmp ax, word [rsp + 0x68]
ja 0x670989bf
movzx eax, cx
lea rcx, [0x67000000]
movzx ecx, byte [rax + rcx + 0x1ed9d0]
jmp 0x670989c1
xor ecx, ecx
cmp edx, 4
jne 0x670989d0
cmp ecx, edx
jne 0x670989d5
mov eax, dword [rsp + 0x4c]
jmp 0x670989f1
cmp edx, 3
jne 0x67098a30
cmp ecx, 3
jne 0x67098a30
mov eax, dword [rsp + 0x4c]
cmp eax, 8
je 0x670989e8
cmp eax, 0xb
jne 0x670989ec
mov dword [rsp + 0x34], edi
mov edx, 3
cmp esi, 2
jne 0x67098a00
cmp eax, 0xf
je 0x67098a30
cmp eax, 0xe
je 0x67098a30
inc esi
dec edi
cmp edi, dword [rsp + 0x34]
jge 0x67098963
mov edi, dword [rsp + 0x34]
mov rsi, qword [rsp + 0x38]
cmp ebx, edi
jle 0x67098a74
movsxd rcx, edi
movzx eax, word [rsi + rcx*2 + 2]
cmp ax, r15w
jne 0x67098a36
lea ecx, [rdi + 1]
jmp 0x67098a47
inc edi
mov dword [rsp + 0x34], edi
jmp 0x67098a12
cmp ax, r14w
jne 0x67098a74
cmp word [rsi + rcx*2 + 4], r15w
jne 0x67098a74
lea ecx, [rdi + 2]
test ecx, ecx
jle 0x67098a74
cmp ecx, ebx
jge 0x67098a6c
movsxd rax, ecx
lea rdi, [rsi + rax*2]
mov eax, ebx
sub eax, ecx
lea rsi, [rdi + 2]
mov ecx, eax
rep movsw word [rdi], word [rsi]
mov rsi, qword [rsp + 0x38]
mov edi, dword [rsp + 0x34]
movsxd rax, ebx
mov word [rsi + rax*2], r15w
xor r10d, r10d
mov r8d, r10d
test r12d, r12d
jle 0x67098aae
movsxd rax, r12d
mov edx, 0x900
movzx ecx, word [rsi + rax*2]
movzx eax, cx
sub ax, dx
mov edx, 0x4ff
cmp ax, dx
ja 0x67098aae
movzx eax, cx
lea rcx, [0x67000000]
movzx r8d, byte [rax + rcx + 0x1ed9d0]
test bpl, bpl
je 0x67098b87
test edi, edi
je 0x67098b87
lea edx, [rdi + 1]
cmp edx, r11d
jge 0x67098af9
movsxd rax, edx
cmp word [rsi + rax*2], r14w
jne 0x67098ad3
inc edx
cmp edx, r11d
jge 0x67098af9
movsxd rax, edx
cmp word [rsi + rax*2], r15w
jne 0x67098ae4
inc edx
cmp edx, r11d
jge 0x67098af9
movsxd rax, edx
mov ebx, 0x200d
cmp word [rsi + rax*2], bx
jne 0x67098af9
inc edx
movzx ebx, word [rsp + 0x30]
cmp edx, r9d
jge 0x67098b17
movsxd rax, edx
cmp word [rsi + rax*2], bx
jne 0x67098b17
cmp word [rsi + rax*2 + 2], r15w
jne 0x67098b17
add edx, 2
mov eax, dword [rsp + 0x4c]
cmp eax, 8
je 0x67098b34
cmp eax, 0xb
je 0x67098b34
cmp eax, 9
je 0x67098b34
cmp eax, 0xf
jne 0x67098b49
mov edx, r11d
jmp 0x67098b45
cmp r8d, 4
je 0x67098b40
cmp r8d, 5
jne 0x67098b49
lea edx, [r12 + 1]
sub r12d, 2
cmp edx, 2
jle 0x67098b66
mov rdi, qword [rsp + 0x38]
add rsi, 4
lea ecx, [rdx - 2]
rep movsw word [rdi], word [rsi]
mov rsi, qword [rsp + 0x38]
mov edi, dword [rsp + 0x34]
movsxd rax, edx
sub edi, 2
mov word [rsi + rax*2 - 4], bx
mov word [rsi + rax*2 - 2], r15w
mov dword [rsp + 0x34], edi
test r13b, r13b
je 0x67098b87
add edx, 0xfffffffe
mov dword [rsp + 0x48], edx
cmp r8d, 5
jne 0x67098c69
movsxd rbx, r12d
mov ecx, 0x9cb
lea rdi, [0x671eea00]
movzx eax, word [rsi + rbx*2]
lea rbp, [rsi + rbx*2]
cmp cx, ax
jae 0x67098bb9
nop dword [rax]
add rdi, 8
cmp word [rdi], ax
jb 0x67098bb0
cmp word [rdi], ax
je 0x67098be0
lea rdx, str.e:qt4.8.4_src3rdpartyharfbuzz_srcharfbuzz_indic.cpp
lea rcx, str.split__matra_uc
mov r8d, 0x447
call qword [sym.imp.MSVCR100.dll__wassert]
mov r11d, dword [rsp + 0x44]
xor r10d, r10d
cmp word [rdi + 6], 0
mov r13, qword [rsp + 0x38]
mov esi, r10d
setne sil
mov eax, r11d
mov rdx, rbp
sub eax, r12d
inc esi
movsxd r8, eax
movsxd rax, esi
add rax, rbx
add r8, r8
lea rcx, [r13 + rax*2]
call qword [sym.imp.MSVCR100.dll_memmove]
movzx edx, word [rdi + 2]
mov word [rbp], dx
movzx eax, word [rdi + 4]
mov word [rbp + 2], ax
cmp esi, 2
jne 0x67098c32
movzx eax, word [rdi + 6]
mov word [r13 + rbx*2 + 4], ax
mov r11d, dword [rsp + 0x44]
mov eax, 0x900
add r11d, esi
mov rsi, r13
mov dword [rsp + 0x44], r11d
cmp dx, ax
jb 0x67098c96
mov eax, 0xdff
cmp dx, ax
ja 0x67098c96
lea rcx, [0x67000000]
movzx eax, dx
movzx r8d, byte [rax + rcx + 0x1ed9d0]
cmp r8d, 1
jne 0x67098c96
movsxd rcx, r12d
movzx edx, word [rsi + rcx*2]
test r12d, r12d
je 0x67098c8f
nop dword [rax + rax]
movzx eax, word [rsi + rcx*2 - 2]
dec rcx
mov word [rsi + rcx*2 + 2], ax
jne 0x67098c80
inc dword [rsp + 0x34]
mov word [rsi], dx
mov r12d, dword [rsp + 0x48]
mov rbx, qword [rsp + 0x78]
movsxd rdi, dword [rsp + 0x34]
test edi, edi
jle 0x67098cbd
mov rcx, qword [rsp + 0x60]
mov r8d, edi
mov dl, 1
call sub.MSVCR100.dll_memset
mov r11d, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x60]
mov r10d, 0x900
mov byte [rdi + rcx], 6
inc edi
mov dword [rsp + 0x54], edi
cmp edi, r11d
jge 0x67098d4e
movsxd rax, edi
lea r12, [0x67000000]
mov r8d, 0x4ff
lea rdx, [rsi + rax*2]
mov esi, r11d
add rcx, rax
sub esi, edi
xor ebx, ebx
nop word [rax + rax]
movzx edi, word [rdx]
movzx eax, di
sub ax, r10w
cmp ax, r8w
ja 0x67098d1e
movzx eax, di
movzx eax, byte [rax + r12 + 0x1ed9d0]
jmp 0x67098d20
mov eax, ebx
mov byte [rcx], al
movzx eax, word [rdx]
cmp ax, r14w
je 0x67098d31
cmp ax, r15w
jne 0x67098d34
mov byte [rcx], 9
add rdx, 2
inc rcx
dec rsi
jne 0x67098d00
mov rbx, qword [rsp + 0x78]
mov edi, dword [rsp + 0x54]
mov r12d, dword [rsp + 0x48]
test r12d, r12d
jle 0x67098d95
movsxd rcx, edi
cmp ecx, r11d
jge 0x67098d87
mov r9, qword [rsp + 0x38]
mov rax, rcx
movzx eax, word [rsp + 0x30]
lea rdx, [r9 + rcx*2]
nop dword [rax]
cmp word [rdx], ax
cmove r12d, ecx
inc ecx
add rdx, 2
cmp ecx, r11d
jl 0x67098d70
mov dword [rsp + 0x48], r12d
mov rcx, qword [rsp + 0x60]
movsxd rax, r12d
mov word [rax + rcx], 0x907
movsxd rbp, edi
cmp ebp, r11d
jge 0x67098dd6
mov rcx, qword [rsp + 0x38]
cmp word [rcx + rbp*2], r14w
jne 0x67098dab
inc ebp
cmp ebp, r11d
jge 0x67098ddd
movsxd rax, ebp
cmp word [rcx + rax*2], r15w
jne 0x67098dbc
inc ebp
mov r15, rcx
mov esi, 0x200d
cmp ebp, r11d
jge 0x67098de5
movsxd rax, ebp
cmp word [rcx + rax*2], si
jne 0x67098de5
inc ebp
jmp 0x67098de5
mov r15, qword [rsp + 0x38]
jmp 0x67098de0
mov r15, rcx
mov esi, 0x200d
lea rcx, [0x67000000]
movsxd r8, ebp
mov r13, qword [rcx + rbx*8 + 0x1ee970]
cmp dword [r13], 0
je 0x67098f83
lea r14d, [r11 - 1]
cmp ebp, r14d
jge 0x67098f7a
mov ebx, ebp
cmp ebp, r11d
jge 0x67098f66
lea r12d, [rbp + 1]
nop
movsxd rdi, ebx
mov edx, 0x4ff
lea r9, [r15 + rdi*2]
movzx r11d, word [r9]
movzx eax, r11w
sub ax, r10w
cmp ax, dx
ja 0x67098e4b
movzx eax, r11w
movzx ecx, byte [rax + rcx + 0x1ed4d0]
jmp 0x67098e78
mov eax, 0x25cc
cmp r11w, ax
jne 0x67098e5d
mov ecx, 1
jmp 0x67098e78
mov eax, 0x200c
cmp r11w, ax
je 0x67098e73
mov ecx, 0xa
cmp r11w, si
jne 0x67098e78
mov ecx, 9
cmp ecx, dword [r13]
jne 0x67098f43
mov rcx, qword [rsp + 0x60]
movzx r10d, byte [rdi + rcx]
lea rsi, [rdi + rcx]
cmp r10d, dword [r13 + 4]
jne 0x67098f3d
cmp ebx, r14d
jge 0x67098f03
cmp byte [rdi + rcx + 1], 9
jne 0x67098f03
movzx esi, word [r9 + 2]
lea eax, [rbx + 1]
movsxd rdx, eax
cmp eax, r12d
jle 0x67098ee2
add rcx, rdx
sub eax, r12d
lea rdx, [r15 + rdx*2]
mov edi, eax
movzx eax, word [rdx - 4]
dec rcx
sub rdx, 2
dec rdi
mov word [rdx + 2], ax
movzx eax, byte [rcx - 1]
mov byte [rcx + 1], al
jne 0x67098ec2
mov rcx, qword [rsp + 0x60]
mov word [r15 + r8*2], r11w
mov word [r15 + r8*2 + 2], si
add ebp, 2
mov byte [r8 + rcx], r10b
mov byte [r8 + rcx + 1], r10b
add r12d, 2
add r8, 2
jmp 0x67098f3d
cmp rdi, r8
jle 0x67098f2c
sub rdi, r8
nop dword [rax + rax]
movzx eax, word [r9 - 2]
dec rsi
add r9, 0xfffffffffffffffe
dec rdi
mov word [r9 + 2], ax
movzx eax, byte [rsi]
mov byte [rsi + 1], al
jne 0x67098f10
mov word [r15 + r8*2], r11w
inc ebp
inc r12d
mov byte [r8 + rcx], r10b
inc r8
mov r10d, 0x900
mov r11d, dword [rsp + 0x44]
inc ebx
lea rcx, [0x67000000]
mov esi, 0x200d
cmp ebx, r11d
jl 0x67098e20
lea rcx, [0x67000000]
add r13, 8
mov esi, 0x200d
cmp dword [r13], 0
jne 0x67098e06
mov edi, dword [rsp + 0x54]
mov r12d, dword [rsp + 0x48]
test r12d, r12d
jle 0x67098fbe
movzx ebx, word [rsp + 0x30]
cmp edi, r11d
jge 0x67098fb7
movsxd rax, edi
lea rcx, [r15 + rax*2]
nop dword [rax]
cmp word [rcx], bx
cmove r12d, edi
inc edi
add rcx, 2
cmp edi, r11d
jl 0x67098fa0
mov dword [rsp + 0x48], r12d
mov rsi, qword [rsp + 0x38]
jmp 0x67098fc8
mov rsi, qword [rsp + 0x38]
movzx ebx, word [rsp + 0x30]
mov r15, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov rcx, qword [r15 + 0x20]
movzx eax, byte [r15 + 0x18]
mov r14d, dword [r12]
and eax, 0x80000001
mov rdi, qword [rcx]
mov dword [rsp + 0x54], r14d
jge 0x67098ffb
dec eax
or eax, 0xfffffffe
inc eax
mov r9, qword [r15 + 0x40]
mov byte [rsp + 0x28], al
mov r8d, r11d
mov rdx, rsi
mov qword [rsp + 0x20], r12
call qword [rdi]
test al, al
je 0x67099634
mov ebp, dword [rsp + 0x44]
test ebp, ebp
jle 0x67099115
xor ecx, ecx
mov edx, ebp
nop dword [rax + rax]
mov rax, qword [r15 + 0x48]
add rcx, 2
and byte [rcx + rax - 2], 0xdf
mov rax, qword [r15 + 0x48]
and byte [rcx + rax - 2], 0xef
mov rax, qword [r15 + 0x48]
and byte [rcx + rax - 2], 0xf0
mov rax, qword [r15 + 0x48]
and byte [rcx + rax - 2], 0xbf
dec rdx
jne 0x67099030
test ebp, ebp
jle 0x67099115
mov rdi, rbp
mov ebp, 0x200c
mov rdx, rsi
mov esi, 1
xor bl, bl
lea r15, [0x67000000]
lea r12d, [rbp + 1]
mov r8d, 0x900
mov r9d, 0x4ff
mov r14d, 0x25cc
nop word [rax + rax]
movzx ecx, word [rdx]
movzx eax, cx
sub ax, r8w
cmp ax, r9w
ja 0x670990be
movzx eax, cx
movzx ecx, byte [rax + r15 + 0x1ed4d0]
jmp 0x670990dd
cmp cx, r14w
jne 0x670990c8
mov ecx, esi
jmp 0x670990dd
cmp cx, bp
je 0x670990d8
cmp cx, r12w
mov ecx, 0xa
jne 0x670990dd
mov ecx, 9
cmp ecx, 9
sete al
add rdx, 2
or bl, al
dec rdi
jne 0x670990a0
mov r14d, dword [rsp + 0x54]
mov rsi, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x44]
mov r15, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov byte [rsp + 0x40], bl
movzx ebx, word [rsp + 0x30]
cmp byte [rsp + 0x58], 0
je 0x6709958c
lea r13, [rsp + 0xe90]
cmp ebp, 0x200
jl 0x6709913f
movsxd rcx, ebp
add rcx, rcx
call qword [sym.imp.MSVCR100.dll_malloc]
mov r13, rax
lea r12, [rsp + 0x90]
cmp ebp, 0x200
jl 0x6709915f
movsxd rcx, ebp
shl rcx, 2
call qword [sym.imp.MSVCR100.dll_malloc]
mov r12, rax
xor ecx, ecx
test ebp, ebp
jle 0x6709918d
mov rdx, r13
nop dword [rax + rax]
mov word [rdx], cx
inc ecx
add rdx, 2
cmp ecx, ebp
jl 0x67099170
test ebp, ebp
jle 0x6709918d
mov ecx, ebp
mov rdi, r12
mov eax, 0x7ff407f4
rep stosd dword [rdi], eax
mov eax, dword [r15 + 0xc]
test eax, eax
je 0x670991d3
lea ecx, [rax - 1]
mov rax, qword [r15]
movzx ecx, word [rax + rcx*2]
call fcn.6709e280
mov edi, 1
mov ecx, eax
mov eax, edi
shl eax, cl
test eax, 0xf8000
jne 0x670991d8
mov ecx, dword [r15 + 0xc]
mov rax, qword [r15]
dec ecx
movzx ecx, word [rax + rcx*2]
call fcn.6709e280
mov ecx, eax
shl dil, cl
test dil, 0xe
jne 0x670991d8
and dword [r12], 0xfffffffb
mov r10d, dword [rsp + 0x34]
test r10d, r10d
js 0x670991fc
lea eax, [r10 + 1]
mov rcx, r12
movsxd rdx, eax
nop dword [rax]
and dword [rcx], 0xffffffef
add rcx, 4
dec rdx
jne 0x670991f0
movsxd rdx, dword [rsp + 0x48]
test edx, edx
js 0x67099210
and dword [r12 + rdx*4], 0xffffffdf
and dword [r12 + rdx*4 + 4], 0xffffffdf
lea r9d, [r10 + 1]
cmp r9d, ebp
jge 0x6709923f
movsxd rax, r9d
mov edx, ebp
lea rcx, [r12 + rax*4]
sub edx, r9d
nop word [rax + rax]
and dword [rcx], 0xffffff7f
add rcx, 4
dec rdx
jne 0x67099230
mov eax, dword [rsp + 0x4c]
cmp eax, 8
je 0x67099251
cmp eax, 0xb
jne 0x670992df
lea edx, [r10 - 2]
xor dil, dil
cmp edx, 1
jle 0x670992df
movsxd rax, edx
lea r8d, [rdx - 1]
lea r11, [0x67000000]
lea rcx, [r12 + rax*4]
lea rsi, [rsi + rax*2]
mov r15d, 0x25cc
nop dword [rax]
movzx edx, word [rsi]
movzx eax, dx
sub ax, word [rsp + 0x70]
cmp ax, word [rsp + 0x68]
ja 0x670992a0
movzx eax, dx
cmp byte [rax + r11 + 0x1ed4d0], 1
jmp 0x670992a4
cmp dx, r15w
jne 0x670992c5
test dil, dil
jne 0x670992c2
cmp dx, bx
jne 0x670992c2
and dword [rcx], 0xffffff7f
and dword [rcx + 4], 0xffffff7f
mov dil, 1
jmp 0x670992c5
xor dil, dil
sub rsi, 2
sub rcx, 4
dec r8
jne 0x67099280
mov rsi, qword [rsp + 0x38]
mov r15, qword [rsp + 0x80]
test r10d, r10d
jle 0x670992ff
mov rax, r12
mov rcx, r10
nop word [rax + rax]
and dword [rax], 0xfffffdff
add rax, 4
dec rcx
jne 0x670992f0
cmp byte [rsp + 0x40], 0
je 0x67099347
cmp ebp, 2
jle 0x67099347
lea eax, [rbp - 2]
mov ebx, 0x200d
lea rdx, [rsi + 4]
mov edi, eax
mov rcx, r12
lea esi, [rbx - 1]
nop
movzx eax, word [rdx]
cmp ax, bx
je 0x6709932d
cmp ax, si
jne 0x6709933a
and dword [rcx + 4], 0xfffffdff
and dword [rcx], 0xfffffdff
add rdx, 2
add rcx, 4
dec rdi
jne 0x67099320
cmp r9d, ebp
jge 0x6709936f
movsxd rax, r9d
sub ebp, r9d
lea rcx, [r12 + rax*4]
mov eax, ebp
nop dword [rax + rax]
and dword [rcx], 0xfffffbff
add rcx, 4
dec rax
jne 0x67099360
mov rdx, r12
mov rcx, r15
mov qword [r15 + 0x60], r13
call fcn.67098050
mov rdx, qword [r15 + 0x28]
mov rax, qword [rdx + 0x40]
movsxd rsi, dword [rax + 4]
mov rbx, qword [rax + 0x18]
mov eax, dword [rsp + 0x4c]
cmp eax, 0x10
je 0x670993a0
cmp eax, 0xd
jne 0x67099459
mov rbp, qword [rsp + 0x38]
mov edx, 0x900
movzx ecx, word [rbp]
movzx eax, cx
sub ax, dx
mov edx, 0x4ff
cmp ax, dx
ja 0x6709945e
movzx eax, cx
lea rcx, [0x67000000]
cmp byte [rax + rcx + 0x1ed4d0], 4
jne 0x6709945e
xor eax, eax
mov rdi, rsi
mov edx, eax
mov ecx, eax
test esi, esi
jle 0x67099403
mov r8d, dword [rsp + 0x34]
lea rax, [rbx + 8]
cmp dword [rax], r8d
jg 0x67099403
inc rcx
inc edx
add rax, 0x14
cmp rcx, rsi
jl 0x670993f0
dec edx
cmp edx, esi
jge 0x6709945e
cmp edx, 1
jle 0x6709945e
mov r8d, dword [rbx]
mov r9d, dword [rbx + 4]
mov r10d, dword [rbx + 8]
mov r11d, dword [rbx + 0xc]
mov ebp, dword [rbx + 0x10]
dec edx
test edx, edx
jle 0x6709943b
lea rcx, [rdx + rdx*4]
lea rsi, [rbx + 0x14]
mov rdi, rbx
shl rcx, 2
shr rcx, 2
rep movsd dword [rdi], dword [rsi]
movsxd rax, edx
lea rcx, [rax + rax*4]
mov dword [rbx + rcx*4], r8d
mov dword [rbx + rcx*4 + 4], r9d
mov dword [rbx + rcx*4 + 8], r10d
mov dword [rbx + rcx*4 + 0xc], r11d
mov dword [rbx + rcx*4 + 0x10], ebp
mov rbp, qword [rsp + 0x38]
xor r8d, r8d
mov edx, r14d
mov rcx, r15
call fcn.67098180
movzx edi, al
lea rax, [rsp + 0xe90]
cmp rax, r13
je 0x67099485
mov rcx, r13
call qword [sym.imp.MSVCR100.dll_free]
lea rax, [rsp + 0x90]
cmp rax, r12
je 0x6709949b
mov rcx, r12
call qword [sym.imp.MSVCR100.dll_free]
test dil, dil
je 0x6709962f
cmp byte [rsp + 0x40], 0
je 0x670995ee
xor r11d, r11d
mov r10d, r11d
cmp dword [r15 + 0x3c], r11d
jbe 0x67099586
lea rdi, [rbx + 8]
mov r8d, r11d
mov edx, r11d
mov ebx, 0x900
mov r9d, r11d
mov esi, r11d
mov r13d, 0x4ff
nop word [rax + rax]
mov eax, dword [rdi]
movzx ecx, word [rbp + rax*2]
movzx eax, cx
sub ax, bx
cmp ax, r13w
ja 0x67099507
movzx eax, cx
lea rcx, [0x67000000]
cmp byte [rax + rcx + 0x1ed4d0], 9
jmp 0x67099523
mov eax, 0x25cc
cmp cx, ax
je 0x6709953a
mov eax, 0x200c
cmp cx, ax
je 0x67099525
mov eax, 0x200d
cmp cx, ax
jne 0x6709953a
inc r11d
add rdi, 0x14
add rsi, 2
add rdx, 4
cmp r11d, dword [r15 + 0x3c]
jae 0x67099586
mov rcx, qword [r15 + 0x40]
inc r11d
add r8, 4
mov eax, dword [rdx + rcx]
add rdi, 0x14
add rsi, 2
mov dword [r8 + rcx - 4], eax
mov rcx, qword [r15 + 0x48]
add rdx, 4
movzx eax, word [rsi + rcx - 2]
inc r10d
add r9, 2
mov word [r9 + rcx - 2], ax
mov rcx, qword [r15 + 0x50]
mov eax, dword [rdx + rcx - 4]
mov dword [r8 + rcx - 4], eax
cmp r11d, dword [r15 + 0x3c]
jb 0x670994e0
mov dword [r15 + 0x3c], r10d
jmp 0x670995ee
mov rax, qword [r15 + 0x28]
mov rcx, qword [r15 + 0x20]
mov r9, qword [r15 + 0x50]
mov edx, dword [rax + 0x4c]
mov rdi, qword [rcx]
mov r8d, dword [r12]
mov dword [rsp + 0x20], edx
mov rdx, qword [r15 + 0x40]
call qword [rdi + 8]
movsxd rdi, dword [r12]
mov rdx, qword [r15 + 0x48]
or r8d, 0xffffffff
test edi, edi
je 0x670995f3
lea rsi, [rdx + rdi*2]
dec edi
sub rsi, 2
cmp r8d, 0xffffffff
jne 0x670995d7
test byte [rsi], 0x20
je 0x670995ea
mov r8d, edi
jmp 0x670995ea
test byte [rsi], 0x20
jne 0x670995ea
mov edx, edi
mov rcx, r15
call fcn.67096cc0
or r8d, 0xffffffff
test edi, edi
jne 0x670995c1
mov rsi, qword [rsp + 0x38]
mov rax, qword [r15 + 0x48]
or byte [rax], 0x10
lea rax, [rsp + 0xa90]
cmp rax, rsi
je 0x67099610
mov rcx, rsi
call qword [sym.imp.MSVCR100.dll_free]
mov rax, qword [rsp + 0x60]
lea rcx, [rsp + 0x890]
cmp rcx, rax
je 0x6709962b
mov rcx, rax
call qword [sym.imp.MSVCR100.dll_free]
mov al, 1
jmp 0x67099667
mov rsi, qword [rsp + 0x38]
lea rax, [rsp + 0xa90]
cmp rax, rsi
je 0x6709964a
mov rcx, rsi
call qword [sym.imp.MSVCR100.dll_free]
mov rax, qword [rsp + 0x60]
lea rcx, [rsp + 0x890]
cmp rcx, rax
je 0x67099665
mov rcx, rax
call qword [sym.imp.MSVCR100.dll_free]
xor al, al
mov r13, qword [rsp + 0x12e0]
mov rcx, qword [rsp + 0x1290]
xor rcx, rsp
call fcn.671623b0
add rsp, 0x12a0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret