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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov ebx, dword [edx]
mov dword [esp + 0x8c], ecx
mov edi, edx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
lea eax, [ebx + 0x50]
mov dword [esp + 0x20], eax
mov esi, edx
mov dword [esp], ecx
push dword [ebx + 0x50]
call fcn.100fc310
add esp, 4
cmp eax, 0x70
je 0x10108a78
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov edx, esi
push dword [eax]
call fcn.100fc310
add esp, 4
cmp eax, 0x50
jne 0x10109928
cmp dword [ebx + 0x40], 0
jne 0x101098f4
lea eax, [ebx + 0x40]
mov dword [ebx + 0x40], 0xffffffff
mov dword [ebx + 0x4c], 0
mov dword [esp + 0xb0], eax
mov ecx, dword [esp]
mov edx, esi
push dword [ebx + 0x50]
call fcn.100fc310
add esp, 4
mov dword [esp + 0xb8], eax
mov ecx, edi
call fcn.100fc400
test al, al
je 0x10108ad1
mov ecx, edi
call fcn.100fc680
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp eax, esi
jne 0x10108b94
mov ecx, dword [esp + 0x20]
test esi, esi
mov eax, dword [ecx + 8]
mov dword [esp + 0x5c], eax
movsd xmm0, qword [ecx]
movsd qword [esp + 0x54], xmm0
movsd xmm0, qword [ecx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
je 0x10108b39
js 0x10109921
mov eax, dword [0x1044f00c]
mov edi, dword [0x1044eff8]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x10108b24
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10109914
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
je 0x10109914
jmp 0x10108b3e
mov edi, 1
push esi
push dword [esp + 4]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm1
movsd xmm1, qword [esp + 0x58]
movsd qword [eax + 0x38], xmm1
mov dword [eax], 0xa
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], esi
mov eax, dword [esp + 0xb0]
inc dword [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp]
mov edx, esi
push eax
call fcn.100fc310
add esp, 4
cmp eax, 0x7b
jne 0x10108c3b
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.100fcd00
mov ecx, dword [esp + 0x5c]
movsd xmm0, qword [esp + 0x54]
lea eax, [ebx + 0x44]
mov dword [esp + 0x14], eax
mov dword [esp + 0xa8], ecx
movsd qword [esp + 0xa0], xmm0
nop word [eax + eax]
mov ecx, edi
call fcn.100fc400
test al, al
je 0x10108cbe
mov ecx, edi
call fcn.100fc680
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp eax, esi
je 0x10108cbe
mov ecx, dword [esp]
mov edx, esi
push eax
call fcn.100fc310
add esp, 4
cmp eax, 0x7d
je 0x10108cbe
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov edx, esi
push dword [eax]
call fcn.100fc310
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.100f9c60
jmp 0x10108be0
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 8]
mov dword [esp + 0x40], eax
movsd xmm0, qword [ebx]
movsd qword [esp + 0x38], xmm0
mov ecx, dword [esp]
mov edx, esi
push dword [ebx]
call fcn.100fc310
add esp, 4
mov ebx, eax
cmp eax, 0x5c
jne 0x10108d39
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.100fcd00
test esi, esi
je 0x10108fdb
js 0x10109921
mov eax, dword [0x1044f00c]
mov edi, dword [0x1044eff8]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x10108ca6
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10109914
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x10108fe0
jmp 0x10109914
mov ecx, dword [esp + 0x20]
mov edx, esi
mov eax, dword [ecx]
cmp eax, esi
jne 0x10108d6f
mov eax, dword [ecx + 8]
test edx, edx
mov dword [esp + 0x5c], eax
movsd xmm0, qword [ecx]
movsd qword [esp + 0x54], xmm0
movsd xmm0, qword [ecx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
je 0x10109021
js 0x10109921
mov eax, dword [0x1044f00c]
mov edi, dword [0x1044eff8]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x10108d21
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10109914
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x10109026
jmp 0x10109914
mov ecx, edi
call fcn.100fc400
test al, al
je 0x10108d4b
mov ecx, edi
call fcn.100fc680
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
xor edx, edx
mov dword [esp], ebx
mov dword [esp + 0x98], eax
movsd qword [esp + 0x90], xmm0
jmp 0x10109703
mov ecx, dword [esp]
push eax
call fcn.100fc310
add esp, 4
cmp eax, 0x7d
mov dword [esp + 0x38], eax
jne 0x1010993e
mov ecx, edi
call fcn.100fc400
mov esi, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
push 2
push 0x1033c254
mov dword [esp + 0x14], eax
push eax
push esi
lea eax, [esp + 0x58]
push eax
call fcn.1002b3c0
add esp, 0x14
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edi
je 0x1010902b
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x64]
lea ecx, [edx + eax - 1]
mov dword [esp], eax
cmp ecx, edi
jae 0x10109036
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
cmp ebx, 0xffffffff
mov dword [esp + 0x9c], edi
lea esi, [eax - 1]
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x24], esi
je 0x10109251
mov dword [esp + 0x10], ebx
mov ebx, eax
lea eax, [eax + eax*2 - 1]
sub ebx, edi
mov edi, dword [esp + 8]
mov dword [esp + 0x30], eax
mov eax, 1
sub eax, esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 4]
mov ebx, edx
mov edx, 1
movzx ecx, byte [eax + ecx]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or edx, eax
je 0x10108e8e
mov esi, dword [esp + 0x10]
mov edx, ebx
jmp 0x10108f1f
mov ecx, dword [esp]
mov eax, ebx
mov eax, dword [esp + 0x88]
lea edx, [ebx + ecx]
add eax, edx
cmp eax, edi
jae 0x10109036
mov ecx, dword [esp + 4]
mov esi, 1
mov edi, 1
movzx ecx, byte [ecx + eax]
xor eax, eax
shld eax, esi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x10108ede
xor esi, esi
jmp 0x10108f1f
add ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 8]
jae 0x10109036
mov eax, dword [esp + 4]
mov esi, dword [esp]
mov edi, 1
movzx ecx, byte [eax + ebx]
xor eax, eax
add edx, esi
xor esi, esi
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
cmovne edi, esi
add ebx, dword [esp]
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x10108ee2
mov ecx, dword [esp + 0x24]
mov eax, esi
mov dword [esp + 0x10], esi
cmp ecx, esi
mov esi, ecx
cmova eax, ecx
cmp eax, dword [esp]
jae 0x10108f5e
mov ecx, dword [esp + 4]
lea edi, [ecx + edx]
mov ecx, eax
lea ebx, [edx + ecx]
cmp ebx, dword [esp + 8]
jae 0x10109833
mov ebx, dword [esp + 0x14]
movzx ebx, byte [ebx + ecx]
cmp bl, byte [edi + ecx]
jne 0x10108fb5
inc ecx
cmp dword [esp], ecx
jne 0x10108f3e
mov edi, dword [esp + 8]
mov ecx, esi
nop word cs:[eax + eax]
nop
cmp dword [esp + 0x10], ecx
jae 0x10109125
dec ecx
cmp ecx, dword [esp]
jae 0x1010980d
lea eax, [ecx + edx]
cmp eax, edi
jae 0x10109817
mov esi, dword [esp + 0x14]
movzx ebx, byte [esi + ecx]
mov esi, edi
mov edi, dword [esp + 4]
cmp bl, byte [edi + eax]
mov edi, esi
je 0x10108f70
add edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
jmp 0x10108fc7
add edx, dword [esp + 0x28]
mov edi, dword [esp + 8]
mov dword [esp + 0x10], 0
add edx, ecx
mov eax, dword [esp + 0x88]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x10108e53
jmp 0x10109036
mov edi, 1
push esi
push dword [esp + 4]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0x50]
mov eax, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x48]
movsd qword [eax + 0x30], xmm1
movsd xmm1, qword [esp + 0x58]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x38], xmm1
mov dword [eax], 0x1c
jmp 0x10108b7a
mov edi, 1
jmp 0x10108b3e
cmp byte [esp + 0x56], 0
je 0x1010912c
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0x3a
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0x3a
lea ecx, [esp + 0x38]
lea edx, [esp + 0x48]
call fcn.100fbc00
cmp dword [esp + 0x38], 0
je 0x101090a8
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x1010911e
cmp esi, dword [esp + 0xc]
jae 0x10109169
cmp byte [ebx + esi], 0xbf
jg 0x1010916f
mov edx, 0x1033c278
jmp 0x101095d2
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0x3d
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0x3d
lea esi, [esp + 0x38]
lea edx, [esp + 0x48]
mov ecx, esi
call fcn.100fbc00
cmp dword [esp + 0x38], 0
je 0x10109379
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x101094a1
cmp eax, dword [esp + 0xc]
jae 0x1010949b
cmp byte [ebx + eax], 0xbf
jg 0x101094a1
mov esi, eax
mov edx, 0x1033c298
jmp 0x101095d2
mov edi, 1
jmp 0x10109196
mov esi, edx
jmp 0x101095b9
mov eax, dword [esp + 0x4c]
movzx ebx, byte [esp + 0x54]
mov ecx, eax
test eax, eax
mov eax, edi
je 0x1010953e
mov eax, edi
sub eax, ecx
jbe 0x10109538
mov esi, dword [esp + 4]
mov edx, ecx
cmp byte [esi + ecx], 0xc0
jge 0x1010953e
mov esi, edi
mov edx, 0x1033ba90
mov edi, ecx
jmp 0x101095e0
jne 0x1010909e
test esi, esi
js 0x10109921
mov eax, dword [0x1044f00c]
mov ecx, esi
movzx eax, byte [eax]
push 1
push ecx
call fcn.10001510
add esp, 8
mov edi, eax
test eax, eax
je 0x10109914
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
inc esi
mov dword [esp], edi
cmp dword [esp + 0xc], esi
jbe 0x101091d7
cmp byte [ebx + esi], 0xbf
jg 0x101091d9
push 0x1033c288
mov eax, dword [esp + 0x10]
push eax
push esi
push eax
push ebx
call fcn.1002bc40
add esp, 0x14
jmp 0x1010996f
jne 0x101091bd
mov eax, dword [esp + 0xc]
mov edi, esi
sub eax, esi
mov esi, eax
je 0x10109216
setns al
js 0x10109963
movzx ebx, al
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
push ebx
push esi
call fcn.10001510
add esp, 8
test eax, eax
jne 0x1010921b
push esi
push ebx
call fcn.1001ac80
add esp, 8
jmp 0x1010996f
mov eax, 1
mov ecx, dword [esp + 0x2c]
add ecx, edi
push esi
push ecx
mov dword [esp + 0x10], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
mov bl, 1
mov edi, esi
jmp 0x101096e7
lea edi, [esi - 1]
cmp esi, eax
mov esi, eax
mov dword [esp + 0x28], edi
jae 0x101093cb
mov eax, dword [esp + 4]
lea ebx, [esi + esi - 1]
mov dword [esp + 0x34], ebx
lea esi, [eax + esi*2 - 1]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
add eax, edi
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 4]
movzx ecx, byte [eax + ecx]
xor eax, eax
mov edi, 1
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
jne 0x101092c7
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x10109036
movzx ecx, byte [esi + edx]
add edx, dword [esp]
jmp 0x1010928b
mov eax, dword [esp + 4]
mov esi, dword [esp]
mov ecx, edx
mov dword [esp + 0x10], edx
not ecx
lea ebx, [eax + edx]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
lea edi, [edx + eax]
mov edx, dword [esp + 8]
cmp edi, edx
jae 0x1010982b
mov edi, edx
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + eax]
cmp dl, byte [ebx + eax]
jne 0x10109356
inc eax
dec ecx
cmp esi, eax
jne 0x101092dd
mov ecx, dword [esp + 0x28]
cmp ecx, esi
jae 0x101098d4
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 8]
add ecx, eax
mov eax, dword [esp + 0xb4]
sub ebx, 1
jb 0x10109492
cmp ecx, edi
jae 0x10109822
movzx edx, byte [eax]
mov esi, dword [esp + 4]
dec eax
cmp dl, byte [esi + ecx]
mov esi, dword [esp + 0x9c]
lea ecx, [ecx - 1]
je 0x10109326
mov edx, dword [esp + 0x10]
add edx, esi
jmp 0x1010935a
neg ecx
mov edx, ecx
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x10109283
jmp 0x10109036
mov edx, ebx
lea ecx, [esp + 0x48]
push dword [esp + 0xc]
call fcn.100f8b80
add esp, 4
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
xor ebx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x98], edx
movsd qword [esp + 0x90], xmm0
mov dl, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
jmp 0x10109703
mov eax, dword [esp + 4]
cmp edi, esi
jae 0x10109855
add dword [esp + 0x14], edi
lea ebx, [esi + esi - 1]
lea eax, [eax + esi*2 - 1]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 4]
movzx ecx, byte [eax + ecx]
mov edi, 1
xor eax, eax
mov esi, 1
shld eax, esi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
jne 0x10109438
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x10109036
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax + edx]
add edx, dword [esp]
jmp 0x101093f3
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 8]
mov dword [esp + 0x10], edx
lea ecx, [eax + edx]
mov eax, dword [esp + 0x14]
sub ebx, 1
jb 0x10109492
cmp ecx, edi
jae 0x10109822
movzx edx, byte [eax]
mov esi, dword [esp + 4]
dec eax
cmp dl, byte [esi + ecx]
lea ecx, [ecx - 1]
je 0x1010944f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x30]
add edx, dword [esp + 0x9c]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x101093eb
jmp 0x10109036
mov esi, dword [esp + 0x10]
jmp 0x101095b9
jne 0x10109112
mov edx, ebx
mov edi, eax
lea ecx, [esp + 0x48]
push eax
call fcn.100f8b80
add esp, 4
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x48]
mov ecx, edi
inc ecx
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm0
mov edx, ebx
push dword [esp + 0xc]
call fcn.100f85e0
add esp, 4
mov edi, edx
mov edx, eax
lea ecx, [esp + 0x48]
push edi
call fcn.100f8b80
add esp, 4
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0xa0]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp], esi
mov dword [esp + 0x98], edx
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
movsd qword [esp + 0x90], xmm0
mov dword [esp + 4], edx
mov dword [esp + 0x14], esi
mov dl, 2
jmp 0x10109703
jne 0x1010915b
test eax, eax
je 0x10109592
mov edi, dword [esp + 4]
mov byte [esp], bl
movzx edx, byte [edi + ecx]
test dl, dl
jns 0x101095ad
movzx eax, byte [edi + ecx + 1]
mov esi, edx
mov ebx, ecx
and esi, 0x1f
and eax, 0x3f
cmp dl, 0xe0
jb 0x1010959d
movzx edi, byte [edi + ebx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp dl, 0xf0
jb 0x101095a6
mov eax, dword [esp + 4]
and esi, 7
shl edi, 6
shl esi, 0x12
movzx edx, byte [eax + ebx + 3]
and edx, 0x3f
or edx, edi
or edx, esi
jmp 0x101095ad
test bl, bl
mov esi, ecx
jne 0x101095b9
jmp 0x10109036
shl esi, 6
or esi, eax
mov edx, esi
jmp 0x101095ad
shl esi, 0xc
or edi, esi
mov edx, edi
cmp byte [esp], 0
je 0x10109792
mov esi, ecx
test esi, esi
je 0x101095f8
cmp esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
jae 0x10109603
cmp byte [ebx + esi], 0xbf
jg 0x10109605
mov edx, 0x1033c258
mov eax, dword [esp + 0xc]
xor edi, edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
push edx
push esi
push edi
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.1002bc40
add esp, 0x14
jmp 0x1010996f
mov ebx, dword [esp + 0x2c]
mov edi, 1
jmp 0x1010962c
jne 0x101095cd
test esi, esi
js 0x10109921
mov eax, dword [0x1044f00c]
mov ecx, esi
movzx eax, byte [eax]
push 1
push ecx
call fcn.10001510
add esp, 8
mov edi, eax
test eax, eax
je 0x10109914
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
add esi, 2
mov dword [esp], edi
cmp dword [esp + 0xc], esi
jbe 0x10109672
cmp byte [ebx + esi], 0xbf
jg 0x10109674
push 0x1033c268
mov eax, dword [esp + 0x10]
push eax
push esi
push eax
push dword [esp + 0x3c]
call fcn.1002bc40
add esp, 0x14
jmp 0x1010996f
jne 0x10109655
mov eax, dword [esp + 0xc]
mov ebx, esi
sub eax, esi
mov esi, eax
je 0x101096b1
setns al
js 0x1010996a
movzx edi, al
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
push edi
push esi
call fcn.10001510
add esp, 8
test eax, eax
jne 0x101096b6
push esi
push edi
call fcn.1001ac80
add esp, 8
jmp 0x1010996f
mov eax, 1
mov ecx, dword [esp + 0x2c]
add ecx, ebx
push esi
push ecx
mov dword [esp + 0x10], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
mov edi, esi
mov bl, 2
mov dword [esp + 4], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x14], eax
movsd qword [esp + 0x90], xmm0
mov dl, 2
mov ecx, esi
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
mov esi, dword [esp + 0x20]
cmp dword [esp + 0xb8], 0x50
mov dword [esp + 0x50], eax
movsd qword [esp + 0x48], xmm0
mov eax, dword [esi + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x8c]
movsd xmm1, qword [esi]
mov esi, dword [esp + 4]
movsd qword [eax + 0x20], xmm0
movsd qword [esp + 0x54], xmm1
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x50]
movsd qword [eax + 0x30], xmm0
movsd qword [eax + 0x28], xmm1
mov byte [eax + 4], dl
mov byte [eax + 5], bl
mov ebx, dword [esp]
mov dword [eax + 8], ebx
mov dword [eax + 0x10], esi
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edi
sete byte [eax + 0x38]
mov dword [eax], 0x1f
jmp 0x10108b83
cmp edx, 0x110000
je 0x10109036
mov edi, 1
cmp edx, 0x80
jb 0x101097c6
mov edi, 2
cmp edx, 0x800
jb 0x101097c6
cmp edx, 0x10000
mov edi, 4
sbb edi, 0
add edi, ecx
je 0x101097e1
mov eax, dword [esp + 8]
sub eax, edi
jbe 0x101097e7
mov ecx, dword [esp + 4]
cmp byte [ecx + edi], 0xc0
jge 0x101097ed
jmp 0x10109971
mov eax, dword [esp + 8]
jmp 0x101097ed
jne 0x10109971
test eax, eax
je 0x101097fd
mov eax, dword [esp + 4]
movzx eax, byte [eax + edi]
test al, al
js 0x10109804
mov esi, edi
jmp 0x101095b9
cmp al, 0xe0
mov esi, edi
jmp 0x101095b9
mov esi, dword [esp]
mov edi, 0x1033b6a4
jmp 0x10109845
mov esi, edi
mov edi, 0x1033b6b4
mov ecx, eax
jmp 0x10109845
mov esi, edi
mov edi, 0x1033b6b4
jmp 0x10109845
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 8]
add edx, eax
mov edi, 0x1033b6c4
cmp esi, edx
cmova edx, esi
mov ecx, edx
push edi
push esi
push ecx
call fcn.100273d0
add esp, 0xc
jmp 0x1010996f
movzx ecx, byte [eax + ecx]
mov esi, 1
xor eax, eax
xor edi, edi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
cmovne esi, edi
and eax, dword [esp + 0x18]
and esi, dword [esp + 0x1c]
or esi, eax
jne 0x101098c5
mov ecx, dword [esp]
mov eax, dword [esp + 4]
lea ebx, [ecx + ecx - 1]
lea esi, [eax + ecx*2 - 1]
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x10109036
movzx ecx, byte [esi + edx]
xor eax, eax
mov edi, 1
add edx, dword [esp]
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x1010988b
cmp dword [esp + 0x24], 0
mov esi, edx
je 0x101095b9
jmp 0x101098e3
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0x10]
je 0x101095b9
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov edi, 0x1033b6a4
jmp 0x10109845
lea eax, [esp + 0x48]
push 0x1033c244
push 0x1033b870
push eax
push 0x10
push str.already_borrowed_usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.7.4_src_ast_parse.rs
call fcn.10027650
add esp, 0x14
ud2
push esi
push 1
call fcn.1001ac80
add esp, 8
jmp 0x1010996f
call fcn.1001ac40
jmp 0x1010996f
push 0x1033c308
push 0x3e
push str.assertion_failed:_self.char____p__self.char____P
call fcn.10027330
add esp, 0xc
ud2
mov dword [esp + 0x48], 0
mov edx, 0x1033c124
lea ecx, [esp + 0x38]
push 0x1033c2b8
lea eax, [esp + 0x4c]
push eax
call fcn.100f89a0
add esp, 8
jmp 0x1010996f
call fcn.1001ac40
jmp 0x1010996f
call fcn.1001ac40
ud2
mov esi, dword [esp + 8]
mov edx, 0x1033ba90
jmp 0x101095e0