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

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x489f15
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rdi
mov byte [rsp + 0x19], 0
mov qword [rsp + 0x48], 0
jmp 0x4899aa
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0x70], rdx
cmp qword [rsp + 0x48], rdx
setl byte [rsp + 0x1f]
jl 0x4899c5
jmp 0x4899e0
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x68], rdx
cmp qword [rsp + 0x48], rdx
setl byte [rsp + 0x1f]
jmp 0x4899e2
jmp 0x4899e2
cmp byte [rsp + 0x1f], 0
jne 0x4899ee
jmp 0x489b8d
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
cmp rcx, rax
ja 0x489a0d
jmp 0x489f0f
add rdx, rax
movzx edx, byte [rdx]
mov byte [rsp + 0x1b], dl
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xc0]
cmp rcx, rax
ja 0x489a36
jmp 0x489f0a
add rsi, rax
movzx esi, byte [rsi]
mov byte [rsp + 0x1a], sil
mov edi, edx
or edx, esi
cmp dl, 0x80
jae 0x489a4f
jmp 0x489b05
jmp 0x489a51
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
cmp rcx, rax
jae 0x489a70
jmp 0x489f05
sub rcx, rax
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and rax, rcx
add rdx, rax
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rsi
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xc0]
cmp rcx, rax
jae 0x489ab2
jmp 0x489f00
sub rcx, rax
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and rax, rcx
add rdx, rax
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rsi
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0x58], 0
nop
jmp 0x489bba
cmp sil, dil
je 0x489b0c
jmp 0x489b0e
jmp 0x489b73
cmp sil, dil
jb 0x489b15
jmp 0x489b26
mov byte [rsp + 0x1c], sil
mov byte [rsp + 0x1a], dil
mov byte [rsp + 0x1b], sil
jmp 0x489b28
jmp 0x489b28
cmp byte [rsp + 0x1b], 0x41
setae byte [rsp + 0x1d]
jae 0x489b36
jmp 0x489b42
cmp byte [rsp + 0x1b], 0x5a
setbe byte [rsp + 0x1d]
jmp 0x489b44
jmp 0x489b44
movzx edx, byte [rsp + 0x1d]
mov byte [rsp + 0x1e], dl
test dl, dl
jne 0x489b53
jmp 0x489b66
movzx edx, byte [rsp + 0x1b]
add edx, 0x20
cmp byte [rsp + 0x1a], dl
sete byte [rsp + 0x1e]
jmp 0x489b68
jmp 0x489b68
cmp byte [rsp + 0x1e], 0
jne 0x489b71
jmp 0x489b7d
jmp 0x489b73
inc qword [rsp + 0x48]
jmp 0x4899aa
mov byte [rsp + 0x19], 0
xor eax, eax
add rsp, 0xa0
pop rbp
ret
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x70], rcx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x68], rdx
cmp rcx, rdx
sete al
mov byte [rsp + 0x19], al
add rsp, 0xa0
pop rbp
ret
mov rdx, qword [rsp + 0x98]
cmp qword [rsp + 0x58], rdx
jl 0x489bce
jmp 0x489e5a
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0x90]
add rdx, qword [rsp + 0x58]
movzx edx, byte [rdx]
mov dword [rsp + 0x34], edx
cmp edx, 0x80
jl 0x489bf6
jmp 0x489bfd
inc qword [rsp + 0x58]
jmp 0x489c22
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
call sym.runtime.decoderune
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x58], rbx
jmp 0x489c22
mov edx, dword [rsp + 0x34]
mov dword [rsp + 0x24], edx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x60], rdx
test rdx, rdx
je 0x489c3e
jmp 0x489c4e
mov byte [rsp + 0x19], 0
xor eax, eax
add rsp, 0xa0
pop rbp
ret
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xc0]
test rcx, rcx
ja 0x489c70
jmp 0x489ef6
cmp byte [rdx], 0x80
jb 0x489c7a
jmp 0x489cff
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xc0]
cmp rcx, 1
jae 0x489c95
jmp 0x489eec
lea rsi, [rcx - 1]
mov rdi, rsi
neg rsi
sar rsi, 0x3f
and esi, 1
add rdx, rsi
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], rdi
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xc0]
test rcx, rcx
ja 0x489cd3
jmp 0x489ee5
movzx edx, byte [rdx]
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rsi
jmp 0x489da8
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
call sym.unicode_utf8.DecodeRuneInString
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x60], rbx
mov ecx, dword [rsp + 0x38]
mov dword [rsp + 0x3c], ecx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x78], rcx
mov ecx, dword [rsp + 0x3c]
mov dword [rsp + 0x2c], ecx
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xc0]
cmp rcx, rax
jae 0x489d5b
jmp 0x489edf
sub rcx, rax
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and rax, rcx
add rdx, rax
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], rsi
mov edx, dword [rsp + 0x2c]
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rsi
jmp 0x489da8
mov edx, dword [rsp + 0x20]
cmp dword [rsp + 0x24], edx
je 0x489db4
jmp 0x489db9
jmp 0x489eca
mov edx, dword [rsp + 0x20]
nop dword [rax]
cmp dword [rsp + 0x24], edx
jg 0x489dc8
jmp 0x489de0
mov edx, dword [rsp + 0x20]
mov dword [rsp + 0x30], edx
mov esi, dword [rsp + 0x24]
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x24], edx
jmp 0x489de2
jmp 0x489de2
cmp dword [rsp + 0x20], 0x80
jl 0x489dee
jmp 0x489e4b
cmp dword [rsp + 0x24], 0x41
setge byte [rsp + 0x1d]
jge 0x489dfc
jmp 0x489e08
cmp dword [rsp + 0x24], 0x5a
setle byte [rsp + 0x1d]
jmp 0x489e0a
jmp 0x489e0a
movzx edx, byte [rsp + 0x1d]
mov byte [rsp + 0x1f], dl
test dl, dl
jne 0x489e19
jmp 0x489e2b
mov edx, dword [rsp + 0x24]
add edx, 0x20
cmp dword [rsp + 0x20], edx
sete byte [rsp + 0x1f]
jmp 0x489e2d
jmp 0x489e2d
cmp byte [rsp + 0x1f], 0
jne 0x489e36
jmp 0x489e3b
jmp 0x489eca
mov byte [rsp + 0x19], 0
xor eax, eax
add rsp, 0xa0
pop rbp
ret
mov eax, dword [rsp + 0x24]
call sym.unicode.SimpleFold
mov dword [rsp + 0x28], eax
jmp 0x489e7a
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x60], rcx
test rcx, rcx
sete al
mov byte [rsp + 0x19], al
add rsp, 0xa0
pop rbp
ret
mov edx, dword [rsp + 0x28]
cmp dword [rsp + 0x24], edx
setne byte [rsp + 0x1d]
jne 0x489e8b
jmp 0x489e9a
mov edx, dword [rsp + 0x28]
cmp dword [rsp + 0x20], edx
setg byte [rsp + 0x1d]
jmp 0x489e9c
jmp 0x489e9c
cmp byte [rsp + 0x1d], 0
jne 0x489ea5
jmp 0x489eb6
mov eax, dword [rsp + 0x28]
call sym.unicode.SimpleFold
mov dword [rsp + 0x28], eax
jmp 0x489eb4
jmp 0x489e7a
mov edx, dword [rsp + 0x28]
nop word [rax + rax]
cmp dword [rsp + 0x20], edx
je 0x489ec8
jmp 0x489ecf
jmp 0x489eca
jmp 0x489bba
mov byte [rsp + 0x19], 0
xor eax, eax
add rsp, 0xa0
pop rbp
ret
nop
call sym.runtime.panicSliceB
xor eax, eax
call sym.runtime.panicIndex
mov eax, 1
call sym.runtime.panicSliceB
xor eax, eax
call sym.runtime.panicIndex
nop dword [rax]
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp sym.strings.EqualFold