Function at 0x7e9f69
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov al, byte [ebx]
inc ebx
xor edx, edx
mov dl, al
cmp edx, 6
jg 0x7e9fa6
je 0x7ea1fb
dec edx
je 0x7e9fd4
dec edx
je 0x7e9fe2
sub edx, 2
je 0x7ea17e
dec edx
je 0x7ea1d7
jmp 0x7ea2d0
sub edx, 7
je 0x7ea224
dec edx
je 0x7ea253
dec edx
je 0x7ea277
sub edx, 0xf3
je 0x7e9fca
jmp 0x7ea2d0
mov eax, 1
jmp 0x7ea2e3
cmp word [ebp + 8], 0
je 0x7e9f79
xor eax, eax
jmp 0x7ea2e3
mov dl, byte [ebx]
push edx
call sub.kernel32.dll_IsDBCSLeadByte
test eax, eax
je 0x7e9ff4
mov si, 2
jmp 0x7e9ff8
mov si, 1
movsx eax, si
add eax, ebx
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], eax
movzx ecx, word [ebp + 8]
movsx eax, si
cmp ecx, eax
jge 0x7ea015
xor eax, eax
jmp 0x7ea2e3
movzx edx, word [ebp + 8]
movsx ecx, si
cmp edx, ecx
jne 0x7ea07b
mov ecx, dword [ebp - 4]
cmp dword [ecx], 0
je 0x7ea04f
cmp si, 1
jne 0x7ea04f
push 1
push ebx
push 1
push edi
push 1
mov eax, dword [ebp - 4]
push dword [eax + 4]
call sub.kernel32.dll_CompareStringA
cmp eax, 2
je 0x7ea068
xor eax, eax
jmp 0x7ea2e3
movsx edx, si
push edx
push ebx
push edi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x7ea068
xor eax, eax
jmp 0x7ea2e3
movsx edx, si
add ebx, edx
movsx ecx, si
add edi, ecx
sub word [ebp + 8], si
jmp 0x7e9f79
xor ecx, ecx
mov cl, byte [ebx]
mov word [ebp - 6], cx
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x7ea0e9
cmp si, 1
jne 0x7ea0e9
mov dl, byte [ebp - 6]
mov byte [ebp - 0x18], dl
mov byte [ebp - 0x17], 0
mov cl, byte [ebp - 6]
mov byte [ebp - 0x20], cl
mov byte [ebp - 0x1f], 0
lea eax, [ebp - 0x18]
push eax
call sub.user32.dll_CharUpperA
lea edx, [ebp - 0x20]
push edx
call sub.user32.dll_CharLowerA
movzx ecx, word [ebp + 8]
movsx eax, si
sub ecx, eax
inc ecx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov eax, edi
call fcn.007e9e25
test eax, eax
jne 0x7ea0fe
movzx ecx, word [ebp + 8]
movsx edx, si
sub ecx, edx
inc ecx
xor edx, edx
mov dl, byte [ebp - 0x20]
mov eax, edi
call fcn.007e9e25
jmp 0x7ea0fe
movzx ecx, word [ebp + 8]
movsx eax, si
sub ecx, eax
inc ecx
mov dx, word [ebp - 6]
mov eax, edi
call fcn.007e9e25
test eax, eax
jne 0x7ea109
xor eax, eax
jmp 0x7ea2e3
cmp si, 1
jle 0x7ea12c
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 1]
je 0x7ea12c
mov ecx, eax
sub ecx, edi
add cx, si
sub word [ebp + 8], cx
movsx edi, si
add edi, eax
jmp 0x7ea083
mov edx, eax
sub edx, edi
add dx, si
sub word [ebp + 8], dx
movsx edi, si
add edi, eax
movsx eax, si
add ebx, eax
mov dx, word [ebp + 8]
push edx
mov ecx, edi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.007e9f69
test eax, eax
je 0x7ea160
mov eax, 1
jmp 0x7ea2e3
mov edx, dword [ebp - 4]
cmp ebx, dword [edx + 0x14]
je 0x7ea16f
xor eax, eax
jmp 0x7ea2e3
movsx edx, si
sub ebx, edx
jmp 0x7ea083
mov cx, word [ebx]
mov word [ebp - 0x22], cx
add ebx, 2
movsx edx, word [ebp - 0x22]
mov eax, edi
call fcn.007e9ec1
mov esi, eax
test si, si
je 0x7ea1c2
movsx eax, si
movzx edx, word [ebp + 8]
cmp eax, edx
jg 0x7ea1c2
movsx ecx, si
movzx eax, word [ebp + 8]
cmp ecx, eax
jne 0x7ea1c9
movsx edx, si
mov eax, edi
call fcn.007e9f03
movsx edx, word [ebp - 0x22]
cmp eax, edx
je 0x7ea1c9
xor eax, eax
jmp 0x7ea2e3
movsx edx, si
add edi, edx
sub word [ebp + 8], si
jmp 0x7e9f79
movzx ecx, word [ebp + 8]
dec ecx
jl 0x7ea1e9
movsx ecx, byte [edi]
xor eax, eax
mov al, byte [ebx]
cmp ecx, eax
je 0x7ea1f0
xor eax, eax
jmp 0x7ea2e3
inc ebx
inc edi
dec word [ebp + 8]
jmp 0x7e9f79
movzx edx, word [ebp + 8]
cmp edx, 2
jl 0x7ea20c
mov cx, word [edi]
cmp cx, word [ebx]
je 0x7ea213
xor eax, eax
jmp 0x7ea2e3
add ebx, 2
add edi, 2
add word [ebp + 8], 0xfffe
jmp 0x7e9f79
movzx edx, word [ebp + 8]
cmp edx, 3
jl 0x7ea23b
mov ecx, dword [edi]
shl ecx, 8
mov esi, dword [ebx]
shl esi, 8
cmp ecx, esi
je 0x7ea242
xor eax, eax
jmp 0x7ea2e3
add ebx, 3
add edi, 3
add word [ebp + 8], 0xfffd
jmp 0x7e9f79
movzx edx, word [ebp + 8]
cmp edx, 4
jl 0x7ea262
mov ecx, dword [edi]
cmp ecx, dword [ebx]
je 0x7ea266
xor eax, eax
jmp 0x7ea2e3
add ebx, 4
add edi, 4
add word [ebp + 8], 0xfffc
jmp 0x7e9f79
mov si, word [ebx]
add ebx, 2
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x7ea2a8
movsx edx, si
push edx
push dword [ebx]
movsx ecx, si
push ecx
push edi
push 1
mov ecx, dword [ebp - 4]
push dword [ecx + 4]
call sub.kernel32.dll_CompareStringA
cmp eax, 2
je 0x7ea2bf
xor eax, eax
jmp 0x7ea2e3
movsx edx, si
push edx
push dword [ebx]
push edi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x7ea2bf
xor eax, eax
jmp 0x7ea2e3
add ebx, 4
movsx edx, si
add edi, edx
sub word [ebp + 8], si
jmp 0x7e9f79
push str.ERROR_in_pattern_match_pcode_r_n
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
jmp 0x7ea2e3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4