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

Disassembly:
lea r12, [rsp - 0xd8]
cmp r12, qword [r14 + 0x10]
jbe 0x59fe30
push rbp
mov rbp, rsp
sub rsp, 0x150
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], rbx
mov qword [rsp + 0x170], rcx
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
movups xmmword [rsp + 0xa0], xmm15
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x168]
nop
cmp rcx, 1
jae 0x59f0eb
jmp 0x59fe25
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
cmp rcx, 1
je 0x59f11a
jmp 0x59f1ef
lea rax, [0x005ec380]
call sym.runtime.newobject
mov qword [rsp + 0x70], rax
mov qword [rax + 8], 0x27
cmp dword [0x0081bd30], 0
je 0x59f13e
jmp 0x59f142
nop
jmp 0x59f14f
mov rdx, qword [rax]
call sym.runtime.gcWriteBarrier1
mov qword [r11], rdx
jmp 0x59f14f
lea rdx, [0x0060a7bd]
mov qword [rax], rdx
mov rdx, qword [rsp + 0x70]
test byte [rdx], al
mov qword [rdx + 0x18], 0
cmp dword [0x0081bd30], 0
je 0x59f173
jmp 0x59f175
jmp 0x59f183
mov r8, qword [rdx + 0x10]
call sym.runtime.gcWriteBarrier1
mov qword [r11], r8
jmp 0x59f183
mov qword [rdx + 0x10], 0
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rdx
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
mov rdx, qword [rsp + 0x78]
lea r8, [0x006ef620]
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xa8], rdx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xd0], xmm15
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
call sym.regexp_syntax.nextRune
mov dword [rsp + 0x30], eax
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], rsi
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rcx
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rdx
mov ecx, dword [rsp + 0x28]
mov dword [rsp + 0x24], ecx
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rdx
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rdx
test rcx, rcx
jne 0x59f2d1
jmp 0x59f303
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
xor ebx, ebx
xor ecx, ecx
add rsp, 0x150
pop rbp
ret
jmp 0x59f305
mov r8d, dword [rsp + 0x24]
mov dword [rsp + 0x2c], r8d
cmp r8d, 0x66
jle 0x59f320
jmp 0x59f4b0
cmp r8d, 0x37
jle 0x59f32b
jmp 0x59f407
cmp r8d, 0x30
je 0x59f333
jmp 0x59f338
jmp 0x59f3e2
cmp r8d, 0x31
jge 0x59f345
nop
jmp 0x59f3fd
cmp r8d, 0x37
jle 0x59f350
jmp 0x59f3fb
jmp 0x59f352
cmp qword [rsp + 0x88], 0
sete byte [rsp + 0x12]
je 0x59f364
jmp 0x59f366
jmp 0x59f390
mov rcx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
test rcx, rcx
ja 0x59f385
nop dword [rax + rax]
jmp 0x59fe1a
cmp byte [r8], 0x30
setb byte [rsp + 0x12]
jmp 0x59f390
movzx r8d, byte [rsp + 0x12]
mov byte [rsp + 0x13], r8b
nop dword [rax + rax]
test r8b, r8b
jne 0x59f3a7
jmp 0x59f3a9
jmp 0x59f3d0
mov rcx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
test rcx, rcx
ja 0x59f3c5
nop
jmp 0x59fe13
cmp byte [r8], 0x37
seta byte [rsp + 0x13]
jmp 0x59f3d0
cmp byte [rsp + 0x13], 0
jne 0x59f3d9
jmp 0x59f3e0
jmp 0x59f99f
jmp 0x59f3e2
mov edx, dword [rsp + 0x24]
add edx, 0xffffffd0
mov dword [rsp + 0x20], edx
mov qword [rsp + 0x48], 1
jmp 0x59fca5
jmp 0x59f400
jmp 0x59f400
jmp 0x59f402
jmp 0x59f4ab
cmp r8d, 0x61
je 0x59f40f
jmp 0x59f456
jmp 0x59f411
mov dword [rsp + 0x20], 7
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
cmp r8d, 0x66
je 0x59f460
jmp 0x59f4a7
jmp 0x59f462
mov dword [rsp + 0x20], 0xc
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
jmp 0x59f4a9
jmp 0x59f4ab
jmp 0x59f915
cmp r8d, 0x72
jle 0x59f4c0
jmp 0x59f567
cmp r8d, 0x6e
je 0x59f4c8
jmp 0x59f50f
jmp 0x59f4ca
mov dword [rsp + 0x20], 0xa
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
cmp r8d, 0x72
je 0x59f517
jmp 0x59f560
jmp 0x59f519
mov dword [rsp + 0x20], 0xd
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
jmp 0x59f562
jmp 0x59f913
cmp r8d, 0x74
je 0x59f56f
jmp 0x59f5b6
jmp 0x59f571
mov dword [rsp + 0x20], 9
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
cmp r8d, 0x76
je 0x59f5c0
jmp 0x59f607
jmp 0x59f5c2
mov dword [rsp + 0x20], 0xb
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
cmp r8d, 0x78
je 0x59f612
jmp 0x59f90d
jmp 0x59f614
cmp qword [rsp + 0x88], 0
je 0x59f622
nop
jmp 0x59f627
jmp 0x59f99f
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xd0], xmm15
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
call sym.regexp_syntax.nextRune
mov dword [rsp + 0x30], eax
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], rsi
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x3c], ecx
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x148], rcx
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rdx
mov ecx, dword [rsp + 0x3c]
mov dword [rsp + 0x24], ecx
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rdx
mov rcx, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x138]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rdx
test rcx, rcx
jne 0x59f709
jmp 0x59f73b
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
xor ebx, ebx
xor ecx, ecx
add rsp, 0x150
pop rbp
ret
cmp dword [rsp + 0x24], 0x7b
je 0x59f744
jmp 0x59f75a
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x20], 0
jmp 0x59fad3
mov eax, dword [rsp + 0x24]
nop
call sym.regexp_syntax.unhex
mov dword [rsp + 0x18], eax
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xd0], xmm15
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
call sym.regexp_syntax.nextRune
mov dword [rsp + 0x30], eax
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], rsi
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x34], ecx
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], rcx
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rdx
mov ecx, dword [rsp + 0x34]
mov dword [rsp + 0x24], ecx
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rdx
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xf8]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rdx
test rcx, rcx
jne 0x59f84b
jmp 0x59f87d
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
xor ebx, ebx
xor ecx, ecx
add rsp, 0x150
pop rbp
ret
mov eax, dword [rsp + 0x24]
call sym.regexp_syntax.unhex
mov dword [rsp + 0x14], eax
cmp dword [rsp + 0x18], 0
setl byte [rsp + 0x13]
jl 0x59f898
jmp 0x59f89a
jmp 0x59f8a6
cmp dword [rsp + 0x14], 0
setl byte [rsp + 0x13]
jmp 0x59f8a6
cmp byte [rsp + 0x13], 0
jne 0x59f8af
jmp 0x59f8b4
jmp 0x59f99f
mov edx, dword [rsp + 0x18]
shl edx, 4
add edx, dword [rsp + 0x14]
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
movups xmmword [rsp + 0xa0], xmm15
mov eax, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
xor edi, edi
xor esi, esi
add rsp, 0x150
pop rbp
ret
jmp 0x59f90f
jmp 0x59f911
jmp 0x59f913
jmp 0x59f915
jmp 0x59f917
cmp dword [rsp + 0x24], 0x80
setl byte [rsp + 0x13]
jl 0x59f928
jmp 0x59f93e
mov eax, dword [rsp + 0x24]
call sym.regexp_syntax.isalnum
mov byte [rsp + 0x12], al
xor eax, 1
mov byte [rsp + 0x13], al
jmp 0x59f942
nop
jmp 0x59f942
cmp byte [rsp + 0x13], 0
jne 0x59f94b
jmp 0x59f99d
mov edx, dword [rsp + 0x24]
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
movups xmmword [rsp + 0xa0], xmm15
mov eax, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
xor edi, edi
xor esi, esi
add rsp, 0x150
pop rbp
ret
jmp 0x59f99f
mov rcx, qword [rsp + 0x170]
mov qword [rsp + 0x60], rcx
mov rbx, qword [rsp + 0x88]
mov qword [rsp + 0x58], rbx
sub rcx, rbx
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x168]
cmp rdx, rcx
jae 0x59f9db
jmp 0x59face
jmp 0x59f9dd
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rcx
lea rax, [0x005ec380]
call sym.runtime.newobject
mov qword [rsp + 0x68], rax
mov qword [rax + 8], 0x17
cmp dword [0x0081bd30], 0
je 0x59fa11
jmp 0x59fa13
jmp 0x59fa22
mov rdx, qword [rax]
call sym.runtime.gcWriteBarrier1
mov qword [r11], rdx
nop
jmp 0x59fa22
lea rdx, [0x00606359]
mov qword [rax], rdx
mov rdx, qword [rsp + 0x68]
test byte [rdx], al
mov r8, qword [rsp + 0xe0]
mov r9, qword [rsp + 0xe8]
mov qword [rdx + 0x18], r9
cmp dword [0x0081bd30], 0
je 0x59fa52
jmp 0x59fa54
jmp 0x59fa66
call sym.runtime.gcWriteBarrier2
mov qword [r11], r8
mov r9, qword [rdx + 0x10]
mov qword [r11 + 8], r9
jmp 0x59fa66
mov qword [rdx + 0x10], r8
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x78], rdx
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
mov rdx, qword [rsp + 0x78]
lea r8, [0x006ef620]
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xa8], rdx
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa8]
add rsp, 0x150
pop rbp
ret
call sym.runtime.panicSliceAlen
jmp 0x59fad5
cmp qword [rsp + 0x88], 0
nop
je 0x59fae4
jmp 0x59fae9
jmp 0x59f99f
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xd0], xmm15
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
call sym.regexp_syntax.nextRune
mov dword [rsp + 0x30], eax
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], rsi
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x38], ecx
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x128], rcx
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdx
mov ecx, dword [rsp + 0x38]
mov dword [rsp + 0x24], ecx
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x128]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rdx
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rdx
test rcx, rcx
jne 0x59fbcb
jmp 0x59fbfd
mov dword [rsp + 0x20], 0
movups xmmword [rsp + 0x90], xmm15
mov eax, dword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
xor ebx, ebx
xor ecx, ecx
add rsp, 0x150
pop rbp
ret
cmp dword [rsp + 0x24], 0x7d
je 0x59fc06
jmp 0x59fc61
jmp 0x59fc08
cmp qword [rsp + 0x40], 0
je 0x59fc12
jmp 0x59fc17
jmp 0x59f99f
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
movups xmmword [rsp + 0xa0], xmm15
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
xor edi, edi
xor esi, esi
add rsp, 0x150
pop rbp
ret
mov eax, dword [rsp + 0x24]
call sym.regexp_syntax.unhex
mov dword [rsp + 0x1c], eax
test eax, eax
jl 0x59fc74
jmp 0x59fc79
jmp 0x59f99f
mov esi, dword [rsp + 0x20]
shl esi, 4
add esi, eax
mov dword [rsp + 0x20], esi
cmp esi, 0x10ffff
jg 0x59fc90
jmp 0x59fc95
jmp 0x59f99f
inc qword [rsp + 0x40]
jmp 0x59fca0
jmp 0x59fad3
cmp qword [rsp + 0x48], 3
jl 0x59fcb2
jmp 0x59fda7
cmp qword [rsp + 0x88], 0
sete byte [rsp + 0x13]
je 0x59fcc4
jmp 0x59fcc6
jmp 0x59fcef
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
test rcx, rcx
ja 0x59fce5
nop dword [rax + rax]
jmp 0x59fe0c
cmp byte [rdx], 0x30
setb byte [rsp + 0x13]
jmp 0x59fcef
movzx edx, byte [rsp + 0x13]
mov byte [rsp + 0x12], dl
test dl, dl
jne 0x59fd00
jmp 0x59fd02
jmp 0x59fd26
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
test rcx, rcx
ja 0x59fd1c
jmp 0x59fe05
cmp byte [rdx], 0x37
seta byte [rsp + 0x12]
jmp 0x59fd26
cmp byte [rsp + 0x12], 0
jne 0x59fd2f
jmp 0x59fd31
jmp 0x59fda9
mov edx, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
test rcx, rcx
ja 0x59fd4f
jmp 0x59fdfd
movzx r8d, byte [r8]
lea edx, [r8 + rdx*8]
lea edx, [rdx - 0x30]
mov dword [rsp + 0x20], edx
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
cmp rcx, 1
jae 0x59fd76
jmp 0x59fdf3
lea r8, [rcx - 1]
mov r9, r8
neg r8
sar r8, 0x3f
and r8d, 1
add rdx, r8
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], r9
jmp 0x59fd9d
inc qword [rsp + 0x48]
jmp 0x59fca5
jmp 0x59fda9
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
movups xmmword [rsp + 0xa0], xmm15
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
xor edi, edi
xor esi, esi
add rsp, 0x150
pop rbp
ret
mov eax, 1
call sym.runtime.panicSliceB
xor eax, eax
nop
call sym.runtime.panicIndex
xor eax, eax
call sym.runtime.panicIndex
xor eax, eax
call sym.runtime.panicIndex
xor eax, eax
call sym.runtime.panicIndex
xor eax, eax
nop dword [rax]
call sym.runtime.panicIndex
mov eax, 1
call sym.runtime.panicSliceB
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
nop
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp sym.regexp_syntax._parser_.parseEscape