Function at 0x100f2e10
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.100e6700
add esp, 4
cmp eax, 0x70
je 0x100f2e68
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov edx, esi
push dword [eax]
call fcn.100e6700
add esp, 4
cmp eax, 0x50
jne 0x100f3d18
cmp dword [ebx + 0x40], 0
jne 0x100f3ce4
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.100e6700
add esp, 4
mov dword [esp + 0xb8], eax
mov ecx, edi
call fcn.100e67f0
test al, al
je 0x100f2ec1
mov ecx, edi
call fcn.100e6a70
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp eax, esi
jne 0x100f2f84
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 0x100f2f29
js 0x100f3d11
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x100f2f14
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100f3d04
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
je 0x100f3d04
jmp 0x100f2f2e
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.100e6700
add esp, 4
cmp eax, 0x7b
jne 0x100f302b
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.100e70f0
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.100e67f0
test al, al
je 0x100f30ae
mov ecx, edi
call fcn.100e6a70
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp eax, esi
je 0x100f30ae
mov ecx, dword [esp]
mov edx, esi
push eax
call fcn.100e6700
add esp, 4
cmp eax, 0x7d
je 0x100f30ae
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov edx, esi
push dword [eax]
call fcn.100e6700
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.100e4050
jmp 0x100f2fd0
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.100e6700
add esp, 4
mov ebx, eax
cmp eax, 0x5c
jne 0x100f3129
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.100e70f0
test esi, esi
je 0x100f33cb
js 0x100f3d11
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x100f3096
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100f3d04
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x100f33d0
jmp 0x100f3d04
mov ecx, dword [esp + 0x20]
mov edx, esi
mov eax, dword [ecx]
cmp eax, esi
jne 0x100f315f
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 0x100f3411
js 0x100f3d11
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x100f3111
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100f3d04
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x100f3416
jmp 0x100f3d04
mov ecx, edi
call fcn.100e67f0
test al, al
je 0x100f313b
mov ecx, edi
call fcn.100e6a70
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 0x100f3af3
mov ecx, dword [esp]
push eax
call fcn.100e6700
add esp, 4
cmp eax, 0x7d
mov dword [esp + 0x38], eax
jne 0x100f3d2e
mov ecx, edi
call fcn.100e67f0
mov esi, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
push 2
push 0x1024e494
mov dword [esp + 0x14], eax
push eax
push esi
lea eax, [esp + 0x58]
push eax
call fcn.1002a920
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 0x100f341b
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x64]
lea ecx, [edx + eax - 1]
mov dword [esp], eax
cmp ecx, edi
jae 0x100f3426
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 0x100f3641
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 0x100f327e
mov esi, dword [esp + 0x10]
mov edx, ebx
jmp 0x100f330f
mov ecx, dword [esp]
mov eax, ebx
mov eax, dword [esp + 0x88]
lea edx, [ebx + ecx]
add eax, edx
cmp eax, edi
jae 0x100f3426
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 0x100f32ce
xor esi, esi
jmp 0x100f330f
add ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 8]
jae 0x100f3426
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 0x100f32d2
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 0x100f334e
mov ecx, dword [esp + 4]
lea edi, [ecx + edx]
mov ecx, eax
lea ebx, [edx + ecx]
cmp ebx, dword [esp + 8]
jae 0x100f3c23
mov ebx, dword [esp + 0x14]
movzx ebx, byte [ebx + ecx]
cmp bl, byte [edi + ecx]
jne 0x100f33a5
inc ecx
cmp dword [esp], ecx
jne 0x100f332e
mov edi, dword [esp + 8]
mov ecx, esi
nop word cs:[eax + eax]
nop
cmp dword [esp + 0x10], ecx
jae 0x100f3515
dec ecx
cmp ecx, dword [esp]
jae 0x100f3bfd
lea eax, [ecx + edx]
cmp eax, edi
jae 0x100f3c07
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 0x100f3360
add edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
jmp 0x100f33b7
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 0x100f3243
jmp 0x100f3426
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 0x100f2f6a
mov edi, 1
jmp 0x100f2f2e
cmp byte [esp + 0x56], 0
je 0x100f351c
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.100e5ff0
cmp dword [esp + 0x38], 0
je 0x100f3498
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x100f350e
cmp esi, dword [esp + 0xc]
jae 0x100f3559
cmp byte [ebx + esi], 0xbf
jg 0x100f355f
mov edx, 0x1024e4b8
jmp 0x100f39c2
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.100e5ff0
cmp dword [esp + 0x38], 0
je 0x100f3769
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x100f3891
cmp eax, dword [esp + 0xc]
jae 0x100f388b
cmp byte [ebx + eax], 0xbf
jg 0x100f3891
mov esi, eax
mov edx, 0x1024e4d8
jmp 0x100f39c2
mov edi, 1
jmp 0x100f3586
mov esi, edx
jmp 0x100f39a9
mov eax, dword [esp + 0x4c]
movzx ebx, byte [esp + 0x54]
mov ecx, eax
test eax, eax
mov eax, edi
je 0x100f392e
mov eax, edi
sub eax, ecx
jbe 0x100f3928
mov esi, dword [esp + 4]
mov edx, ecx
cmp byte [esi + ecx], 0xc0
jge 0x100f392e
mov esi, edi
mov edx, 0x1024dcd0
mov edi, ecx
jmp 0x100f39d0
jne 0x100f348e
test esi, esi
js 0x100f3d11
mov eax, dword [0x103564a0]
mov ecx, esi
movzx eax, byte [eax]
push 1
push ecx
call fcn.10001510
add esp, 8
mov edi, eax
test eax, eax
je 0x100f3d04
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 0x100f35c7
cmp byte [ebx + esi], 0xbf
jg 0x100f35c9
push 0x1024e4c8
mov eax, dword [esp + 0x10]
push eax
push esi
push eax
push ebx
call fcn.1002b1a0
add esp, 0x14
jmp 0x100f3d5f
jne 0x100f35ad
mov eax, dword [esp + 0xc]
mov edi, esi
sub eax, esi
mov esi, eax
je 0x100f3606
setns al
js 0x100f3d53
movzx ebx, al
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
push ebx
push esi
call fcn.10001510
add esp, 8
test eax, eax
jne 0x100f360b
push esi
push ebx
call fcn.1001a7e0
add esp, 8
jmp 0x100f3d5f
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 0x100f3ad7
lea edi, [esi - 1]
cmp esi, eax
mov esi, eax
mov dword [esp + 0x28], edi
jae 0x100f37bb
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 0x100f36b7
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x100f3426
movzx ecx, byte [esi + edx]
add edx, dword [esp]
jmp 0x100f367b
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 0x100f3c1b
mov edi, edx
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + eax]
cmp dl, byte [ebx + eax]
jne 0x100f3746
inc eax
dec ecx
cmp esi, eax
jne 0x100f36cd
mov ecx, dword [esp + 0x28]
cmp ecx, esi
jae 0x100f3cc4
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 0x100f3882
cmp ecx, edi
jae 0x100f3c12
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 0x100f3716
mov edx, dword [esp + 0x10]
add edx, esi
jmp 0x100f374a
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 0x100f3673
jmp 0x100f3426
mov edx, ebx
lea ecx, [esp + 0x48]
push dword [esp + 0xc]
call fcn.100e2f70
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 0x100f3af3
mov eax, dword [esp + 4]
cmp edi, esi
jae 0x100f3c45
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 0x100f3828
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x100f3426
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax + edx]
add edx, dword [esp]
jmp 0x100f37e3
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 0x100f3882
cmp ecx, edi
jae 0x100f3c12
movzx edx, byte [eax]
mov esi, dword [esp + 4]
dec eax
cmp dl, byte [esi + ecx]
lea ecx, [ecx - 1]
je 0x100f383f
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 0x100f37db
jmp 0x100f3426
mov esi, dword [esp + 0x10]
jmp 0x100f39a9
jne 0x100f3502
mov edx, ebx
mov edi, eax
lea ecx, [esp + 0x48]
push eax
call fcn.100e2f70
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.100e29d0
add esp, 4
mov edi, edx
mov edx, eax
lea ecx, [esp + 0x48]
push edi
call fcn.100e2f70
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 0x100f3af3
jne 0x100f354b
test eax, eax
je 0x100f3982
mov edi, dword [esp + 4]
mov byte [esp], bl
movzx edx, byte [edi + ecx]
test dl, dl
jns 0x100f399d
movzx eax, byte [edi + ecx + 1]
mov esi, edx
mov ebx, ecx
and esi, 0x1f
and eax, 0x3f
cmp dl, 0xe0
jb 0x100f398d
movzx edi, byte [edi + ebx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp dl, 0xf0
jb 0x100f3996
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 0x100f399d
test bl, bl
mov esi, ecx
jne 0x100f39a9
jmp 0x100f3426
shl esi, 6
or esi, eax
mov edx, esi
jmp 0x100f399d
shl esi, 0xc
or edi, esi
mov edx, edi
cmp byte [esp], 0
je 0x100f3b82
mov esi, ecx
test esi, esi
je 0x100f39e8
cmp esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
jae 0x100f39f3
cmp byte [ebx + esi], 0xbf
jg 0x100f39f5
mov edx, 0x1024e498
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.1002b1a0
add esp, 0x14
jmp 0x100f3d5f
mov ebx, dword [esp + 0x2c]
mov edi, 1
jmp 0x100f3a1c
jne 0x100f39bd
test esi, esi
js 0x100f3d11
mov eax, dword [0x103564a0]
mov ecx, esi
movzx eax, byte [eax]
push 1
push ecx
call fcn.10001510
add esp, 8
mov edi, eax
test eax, eax
je 0x100f3d04
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 0x100f3a62
cmp byte [ebx + esi], 0xbf
jg 0x100f3a64
push 0x1024e4a8
mov eax, dword [esp + 0x10]
push eax
push esi
push eax
push dword [esp + 0x3c]
call fcn.1002b1a0
add esp, 0x14
jmp 0x100f3d5f
jne 0x100f3a45
mov eax, dword [esp + 0xc]
mov ebx, esi
sub eax, esi
mov esi, eax
je 0x100f3aa1
setns al
js 0x100f3d5a
movzx edi, al
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
push edi
push esi
call fcn.10001510
add esp, 8
test eax, eax
jne 0x100f3aa6
push esi
push edi
call fcn.1001a7e0
add esp, 8
jmp 0x100f3d5f
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 0x100f2f73
cmp edx, 0x110000
je 0x100f3426
mov edi, 1
cmp edx, 0x80
jb 0x100f3bb6
mov edi, 2
cmp edx, 0x800
jb 0x100f3bb6
cmp edx, 0x10000
mov edi, 4
sbb edi, 0
add edi, ecx
je 0x100f3bd1
mov eax, dword [esp + 8]
sub eax, edi
jbe 0x100f3bd7
mov ecx, dword [esp + 4]
cmp byte [ecx + edi], 0xc0
jge 0x100f3bdd
jmp 0x100f3d61
mov eax, dword [esp + 8]
jmp 0x100f3bdd
jne 0x100f3d61
test eax, eax
je 0x100f3bed
mov eax, dword [esp + 4]
movzx eax, byte [eax + edi]
test al, al
js 0x100f3bf4
mov esi, edi
jmp 0x100f39a9
cmp al, 0xe0
mov esi, edi
jmp 0x100f39a9
mov esi, dword [esp]
mov edi, 0x1024d8e4
jmp 0x100f3c35
mov esi, edi
mov edi, 0x1024d8f4
mov ecx, eax
jmp 0x100f3c35
mov esi, edi
mov edi, 0x1024d8f4
jmp 0x100f3c35
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 8]
add edx, eax
mov edi, 0x1024d904
cmp esi, edx
cmova edx, esi
mov ecx, edx
push edi
push esi
push ecx
call fcn.10026930
add esp, 0xc
jmp 0x100f3d5f
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 0x100f3cb5
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 0x100f3426
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 0x100f3c7b
cmp dword [esp + 0x24], 0
mov esi, edx
je 0x100f39a9
jmp 0x100f3cd3
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0x10]
je 0x100f39a9
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov edi, 0x1024d8e4
jmp 0x100f3c35
lea eax, [esp + 0x48]
push 0x1024e484
push 0x1024dab0
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.10026bb0
add esp, 0x14
ud2
push esi
push 1
call fcn.1001a7e0
add esp, 8
jmp 0x100f3d5f
call fcn.1001a7a0
jmp 0x100f3d5f
push 0x1024e548
push 0x3e
push str.assertion_failed:_self.char____p__self.char____P
call fcn.10026890
add esp, 0xc
ud2
mov dword [esp + 0x48], 0
mov edx, 0x1024e364
lea ecx, [esp + 0x38]
push 0x1024e4f8
lea eax, [esp + 0x4c]
push eax
call fcn.100e2d90
add esp, 8
jmp 0x100f3d5f
call fcn.1001a7a0
jmp 0x100f3d5f
call fcn.1001a7a0
ud2
mov esi, dword [esp + 8]
mov edx, 0x1024dcd0
jmp 0x100f39d0