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

Disassembly:
mov ecx, dword [0x67bf38]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x4d3c43
sub esp, 0xb4
mov ebx, dword [edx + 4]
mov ebx, dword [ebx]
mov ecx, dword [ebx + 4]
mov ebp, dword [edx + 0x1c]
mov esi, dword [edx + 0x10]
mov dword [esp + 0x7c], esi
mov edi, dword [edx + 0x14]
mov eax, dword [edx + 0xc]
mov ebx, dword [ebx]
mov esi, dword [esp + 0xb8]
cmp esi, ecx
jae 0x4d3c3b
mov dword [esp + 0xb0], eax
mov dword [esp + 0x78], ebp
mov dword [esp + 0x4c], edi
mov ecx, dword [edx + 8]
lea edx, [esi + esi*8]
mov dword [esp + 0x5c], edx
mov edi, dword [ecx]
mov ebp, dword [ecx + 4]
cmp ebp, esi
jbe 0x4d292d
mov eax, dword [edi + esi*4]
cmp dword [ecx + 0x18], eax
jbe 0x4d2924
mov edx, dword [ecx + 0x10]
cmp edx, eax
jbe 0x4d3c34
mov edx, dword [ecx + 0xc]
lea eax, [edx + eax*4]
cmp dword [eax], esi
je 0x4d2915
cmp ebp, esi
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x5c]
jmp 0x4d292d
mov byte [esp + 0xc8], 1
add esp, 0xb4
ret
cmp ebp, esi
mov eax, dword [esp + 0xb0]
nop
jbe 0x4d2978
mov eax, dword [edi + esi*4]
cmp dword [ecx + 0x18], eax
jbe 0x4d296f
mov dword [esp + 0xac], edi
mov edi, dword [ecx + 0x10]
cmp edi, eax
jbe 0x4d3c2d
mov edi, dword [ecx + 0xc]
lea edi, [edi + eax*4]
cmp dword [edi], esi
jne 0x4d295d
mov eax, dword [esp + 0xb0]
jmp 0x4d2999
cmp ebp, esi
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
jmp 0x4d2978
cmp ebp, esi
mov eax, dword [esp + 0xb0]
nop
jbe 0x4d2999
mov ebp, dword [ecx + 0x18]
mov dword [edi + esi*4], ebp
mov ebp, dword [ecx + 0x10]
mov edi, dword [ecx + 0x18]
cmp ebp, edi
jbe 0x4d3c24
mov ebp, dword [ecx + 0xc]
mov dword [ebp + edi*4], esi
inc dword [ecx + 0x18]
mov dword [esp + 0xa8], ebx
lea ebp, [ebx + edx*4]
mov dword [esp + 0xa4], ebp
movzx edi, byte [ebp]
xchg edi, eax
cmp al, 5
xchg edi, eax
ja 0x4d2ded
xchg edi, eax
cmp al, 2
xchg edi, eax
ja 0x4d2bdc
xchg edi, eax
cmp al, 1
xchg edi, eax
ja 0x4d2e03
mov ecx, dword [eax]
mov ebp, dword [ecx]
mov esi, dword [ebx + edx*4 + 4]
mov dword [esp], esi
mov esi, dword [esp + 0xbc]
mov dword [esp + 4], esi
mov edi, dword [esp + 0xc0]
mov dword [esp + 8], edi
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc], esi
mov edx, ecx
call ebp
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4d2a0c
xor eax, eax
jmp 0x4d2a51
mov eax, dword [esp + 0xb0]
mov edx, dword [eax]
mov eax, dword [edx]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xa8]
mov ebp, dword [ebx + ecx*4 + 8]
mov dword [esp], ebp
mov ebp, dword [esp + 0xbc]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc], esi
call eax
movzx eax, byte [esp + 0x10]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xa8]
mov ebp, dword [ebx + edx*4 + 4]
mov ecx, dword [esp + 0xc0]
cmp ecx, ebp
jbe 0x4d3c1d
mov byte [esp + 0x2b], al
mov esi, dword [ebx + edx*4 + 8]
mov edi, dword [esp + 0xbc]
movzx eax, byte [ebp + edi]
cmp ecx, esi
jbe 0x4d3c16
movzx edi, byte [esi + edi]
test al, al
je 0x4d2aa0
xchg edi, eax
test al, al
xchg edi, eax
je 0x4d2ab0
xor eax, eax
jmp 0x4d3792
xchg edi, eax
test al, al
xchg edi, eax
je 0x4d2ab0
mov dword [ebx + edx*4 + 4], esi
mov dword [ebx + edx*4 + 8], ebp
mov eax, edi
test al, al
je 0x4d2adc
mov eax, dword [esp + 0xb8]
cmp ecx, eax
jbe 0x4d3c11
mov ebp, dword [esp + 0xbc]
mov byte [ebp + eax], 1
mov ebp, dword [esp + 0xa4]
mov byte [ebp], 1
jmp 0x4d2ae3
mov eax, dword [esp + 0xb8]
mov ebp, dword [ebx + edx*4 + 4]
mov ecx, dword [esp + 0x4c]
cmp ebp, ecx
jae 0x4d3c0a
lea esi, [ebp + ebp*2]
mov edi, dword [ebx + edx*4 + 8]
mov edx, dword [esp + 0x7c]
lea esi, [edx + esi*4]
cmp edi, ecx
jae 0x4d3c03
mov dword [esp], esi
lea eax, [edi + edi*2]
lea eax, [edx + eax*4]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
call sym.regexp.mergeRuneSets
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x4c]
cmp edx, ebx
jae 0x4d3bfa
mov dword [esp + 0xac], eax
lea edx, [edx + edx*2]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov dword [eax + edx*4 + 4], ebx
mov dword [eax + edx*4 + 8], ebp
mov ebx, dword [0x67c100]
test ebx, ebx
je 0x4d2b80
mov ebx, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov ebp, dword [eax + edx*4]
mov dword [edi + 4], ebp
mov edi, ebx
mov dword [eax + edx*4], edi
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xa8]
mov dword [edx + eax*4 + 0x1c], esi
mov dword [edx + eax*4 + 0x20], ecx
mov ecx, dword [0x67c100]
test ecx, ecx
jne 0x4d2ba9
mov ecx, dword [esp + 0xac]
jmp 0x4d2bbe
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0xac]
mov dword [edi], ecx
mov ebx, dword [edx + eax*4 + 0x18]
mov dword [edi + 4], ebx
mov dword [edx + eax*4 + 0x18], ecx
test esi, esi
je 0x4d2bd2
cmp dword [ecx], 0xffffffff
jne 0x4d2bd2
xor eax, eax
jmp 0x4d3792
movzx eax, byte [esp + 0x2b]
jmp 0x4d3792
xchg edi, eax
cmp al, 3
xchg edi, eax
jne 0x4d2dc2
mov eax, dword [eax]
mov ecx, dword [eax]
mov ebp, dword [ebx + edx*4 + 4]
mov dword [esp], ebp
mov ebp, dword [esp + 0xbc]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc], esi
mov edx, eax
call ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + eax*4 + 4]
movzx ebp, byte [esp + 0x10]
mov esi, dword [esp + 0xc0]
cmp esi, ebx
jbe 0x4d3bf1
mov edx, dword [esp + 0xbc]
movzx ebx, byte [ebx + edx]
mov edi, dword [esp + 0xb8]
cmp esi, edi
jbe 0x4d3be8
mov byte [edx + edi], bl
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x4c]
cmp edx, ebx
jae 0x4d3bdf
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x7c]
mov ebp, dword [esi + edx*4 + 4]
mov edx, dword [esi + edx*4]
test ebp, ebp
ja 0x4d2c9e
mov dword [esp + 0x68], eax
lea eax, [0x67be00]
mov dword [esp + 0x9c], eax
xor eax, eax
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x54], eax
jmp 0x4d2cf7
mov dword [esp + 0x58], ebp
mov dword [esp + 0xa0], edx
lea eax, [0x67be00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
lea eax, [0x531ac0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], edx
shl ebp, 2
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jae 0x4d3bda
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x7c]
mov dword [edx + eax*4 + 4], ecx
mov ebx, dword [esp + 0x54]
mov dword [edx + eax*4 + 8], ebx
mov ebx, dword [0x67c100]
test ebx, ebx
jne 0x4d2d4e
mov ebx, dword [esp + 0x9c]
jmp 0x4d2d62
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x9c]
mov dword [edi], ebx
mov ebp, dword [edx + eax*4]
mov dword [edi + 4], ebp
mov dword [edx + eax*4], ebx
lea eax, [0x531bc0]
mov dword [esp], eax
shr ecx, 1
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4 + 0x1c], edx
mov dword [ebx + ecx*4 + 0x20], edx
mov ebp, dword [0x67c100]
test ebp, ebp
je 0x4d2db7
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + ecx*4 + 0x18]
mov dword [edi + 4], ebp
mov dword [ebx + ecx*4 + 0x18], eax
xor eax, eax
jmp 0x4d3bb3
mov ecx, dword [esp + 0xc0]
cmp ecx, esi
jbe 0x4d3ba8
xchg edi, eax
cmp al, 4
xchg edi, eax
sete cl
mov edx, dword [esp + 0xbc]
mov byte [edx + esi], cl
mov eax, 1
jmp 0x4d3792
xchg edi, eax
cmp al, 7
xchg edi, eax
ja 0x4d3227
xchg edi, eax
cmp al, 6
xchg edi, eax
jne 0x4d2fde
mov eax, dword [eax]
mov ecx, dword [eax]
mov ebp, dword [ebx + edx*4 + 4]
mov dword [esp], ebp
mov ebp, dword [esp + 0xbc]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc], esi
mov edx, eax
call ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + eax*4 + 4]
movzx ebp, byte [esp + 0x10]
mov esi, dword [esp + 0xc0]
cmp esi, ebx
jbe 0x4d3b9f
mov edx, dword [esp + 0xbc]
movzx ebx, byte [ebx + edx]
mov edi, dword [esp + 0xb8]
cmp esi, edi
jbe 0x4d3b96
mov byte [edx + edi], bl
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x4c]
cmp edx, ebx
jae 0x4d3b8d
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x7c]
mov ebp, dword [esi + edx*4 + 4]
mov edx, dword [esi + edx*4]
test ebp, ebp
ja 0x4d2eba
mov dword [esp + 0x60], eax
lea eax, [0x67be00]
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x54], eax
jmp 0x4d2f13
mov dword [esp + 0x58], ebp
mov dword [esp + 0x98], edx
lea eax, [0x67be00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
lea eax, [0x531ac0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x94], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], edx
shl ebp, 2
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jae 0x4d3b88
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x7c]
mov dword [edx + eax*4 + 4], ecx
mov ebx, dword [esp + 0x54]
mov dword [edx + eax*4 + 8], ebx
mov ebx, dword [0x67c100]
test ebx, ebx
jne 0x4d2f6a
mov ebx, dword [esp + 0x94]
jmp 0x4d2f7e
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x94]
mov dword [edi], ebx
mov ebp, dword [edx + eax*4]
mov dword [edi + 4], ebp
mov dword [edx + eax*4], ebx
lea eax, [0x531bc0]
mov dword [esp], eax
shr ecx, 1
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4 + 0x1c], edx
mov dword [ebx + ecx*4 + 0x20], edx
mov ebp, dword [0x67c100]
test ebp, ebp
je 0x4d2fd3
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + ecx*4 + 0x18]
mov dword [edi + 4], ebp
mov dword [ebx + ecx*4 + 0x18], eax
xor eax, eax
jmp 0x4d3b61
mov ecx, dword [esp + 0xc0]
cmp ecx, esi
jbe 0x4d3b56
mov edi, dword [esp + 0xbc]
mov byte [edi + esi], 0
mov edi, dword [ebx + edx*4 + 0x1c]
test edi, edi
jne 0x4d321d
mov edi, dword [ebx + edx*4 + 4]
mov ebp, dword [esp + 0x78]
mov ecx, dword [ebp]
mov eax, dword [ebp + 4]
cmp eax, edi
jbe 0x4d305e
mov esi, dword [ecx + edi*4]
cmp dword [ebp + 0x18], esi
jbe 0x4d3055
mov dword [esp + 0xac], ecx
mov ecx, dword [ebp + 0x10]
cmp ecx, esi
jbe 0x4d3b4f
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + esi*4]
cmp dword [esi], edi
jne 0x4d3043
mov esi, dword [esp + 0xb8]
jmp 0x4d307e
cmp eax, edi
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xb8]
jmp 0x4d305e
cmp eax, edi
mov esi, dword [esp + 0xb8]
nop
jbe 0x4d307e
mov eax, dword [ebp + 0x18]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
cmp ecx, eax
jbe 0x4d3b4a
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax*4], edi
inc dword [ebp + 0x18]
mov ebp, dword [ebx + edx*4 + 0x10]
mov edi, dword [ebx + edx*4 + 0xc]
test ebp, ebp
je 0x4d3184
mov dword [esp + 0x90], edi
cmp ebp, 1
jne 0x4d3111
mov eax, dword [ebx + edx*4 + 8]
test ax, 1
je 0x4d3111
mov eax, dword [edi]
mov dword [esp + 0x48], eax
lea ecx, [0x67be00]
mov dword [esp], ecx
mov dword [esp + 4], 2
mov dword [esp + 8], 0
mov dword [esp + 0xc], 2
lea ecx, [0x531ac0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x48]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [esp], edx
call sym.unicode.SimpleFold
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x74]
mov ebx, 2
jmp 0x4d3aba
mov dword [esp + 0x58], ebp
lea eax, [0x67be00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
lea eax, [0x531ac0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x58]
shl eax, 2
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], ebx
mov dword [esp], ecx
mov ebp, dword [esp + 0x90]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
jmp 0x4d39ba
mov ecx, dword [esp + 0x4c]
cmp esi, ecx
jae 0x4d39b3
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x7c]
mov dword [ecx + eax*4 + 4], 0
mov dword [ecx + eax*4 + 8], 0
mov ebp, dword [0x67c100]
test ebp, ebp
je 0x4d31bb
mov ebp, dword [ecx + eax*4]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebp
lea edx, [0x67be00]
mov dword [ecx + eax*4], edx
lea eax, [0x530c40]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + ecx*4 + 4]
mov dword [eax], ebx
mov dword [edx + ecx*4 + 0x1c], 1
mov dword [edx + ecx*4 + 0x20], 1
mov ebx, dword [0x67c100]
test ebx, ebx
je 0x4d320f
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + ecx*4 + 0x18]
mov dword [edi + 4], ebx
mov dword [edx + ecx*4 + 0x18], eax
mov eax, 1
jmp 0x4d3792
mov eax, 1
jmp 0x4d3792
xchg edi, eax
cmp al, 8
xchg edi, eax
jne 0x4d33c5
mov ecx, dword [esp + 0xc0]
cmp ecx, esi
jbe 0x4d39ac
mov edi, dword [esp + 0xbc]
mov byte [edi + esi], 0
mov edi, dword [ebx + edx*4 + 0x1c]
test edi, edi
jne 0x4d33bb
mov edi, dword [ebx + edx*4 + 4]
mov ebp, dword [esp + 0x78]
mov ecx, dword [ebp]
mov eax, dword [ebp + 4]
cmp eax, edi
jbe 0x4d32b2
mov esi, dword [ecx + edi*4]
cmp dword [ebp + 0x18], esi
jbe 0x4d32a9
mov dword [esp + 0xac], ecx
mov ecx, dword [ebp + 0x10]
cmp ecx, esi
jbe 0x4d39a5
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + esi*4]
cmp dword [esi], edi
jne 0x4d3297
mov esi, dword [esp + 0xb8]
jmp 0x4d32d2
cmp eax, edi
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xb8]
jmp 0x4d32b2
cmp eax, edi
mov esi, dword [esp + 0xb8]
nop
jbe 0x4d32d2
mov eax, dword [ebp + 0x18]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
cmp eax, ecx
jae 0x4d39a0
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax*4], edi
inc dword [ebp + 0x18]
mov ebp, dword [ebx + edx*4 + 8]
test bp, 1
je 0x4d335a
mov ebp, dword [ebx + edx*4 + 0x10]
mov edi, dword [ebx + edx*4 + 0xc]
test ebp, ebp
jbe 0x4d3997
mov eax, dword [edi]
mov dword [esp + 0x44], eax
lea ecx, [0x67be00]
mov dword [esp], ecx
mov dword [esp + 4], 2
mov dword [esp + 8], 0
mov dword [esp + 0xc], 2
lea ecx, [0x531ac0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x44]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [esp], edx
call sym.unicode.SimpleFold
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
mov ebx, 2
jmp 0x4d3907
mov ebp, dword [ebx + edx*4 + 0x10]
mov edi, dword [ebx + edx*4 + 0xc]
test ebp, ebp
jbe 0x4d38d2
mov eax, dword [edi]
mov dword [esp + 0x50], eax
lea ecx, [0x67be00]
mov dword [esp], ecx
mov dword [esp + 4], 2
mov dword [esp + 8], 0
mov dword [esp + 0xc], 2
lea ecx, [0x531ac0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x50]
mov dword [eax], edx
mov dword [eax + 4], edx
mov edx, 2
jmp 0x4d37fc
mov eax, 1
jmp 0x4d3792
xchg edi, eax
cmp al, 9
xchg edi, eax
je 0x4d35c2
xchg edi, eax
cmp al, 0xa
xchg edi, eax
jne 0x4d35b8
mov ecx, dword [esp + 0xc0]
cmp ecx, esi
jbe 0x4d37f5
mov ebp, dword [esp + 0xbc]
mov byte [ebp + esi], 0
mov ebp, dword [ebx + edx*4 + 0x1c]
test ebp, ebp
jne 0x4d35ae
mov ebp, dword [ebx + edx*4 + 4]
mov edi, dword [esp + 0x78]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp ecx, ebp
jbe 0x4d3452
mov edx, dword [eax + ebp*4]
cmp dword [edi + 0x18], edx
jbe 0x4d344c
mov ebx, dword [edi + 0x10]
cmp edx, ebx
jae 0x4d37ec
mov ebx, dword [edi + 0xc]
lea edx, [ebx + edx*4]
cmp dword [edx], ebp
jne 0x4d343d
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xa8]
jmp 0x4d3472
cmp ecx, ebp
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xa8]
jmp 0x4d3452
cmp ecx, ebp
mov edx, dword [esp + 0x5c]
nop
jbe 0x4d3472
mov ecx, dword [edi + 0x18]
mov dword [eax + ebp*4], ecx
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
cmp eax, ecx
jae 0x4d37e7
mov ecx, dword [edi + 0xc]
mov dword [ecx + eax*4], ebp
inc dword [edi + 0x18]
mov eax, dword [0x651684]
test eax, eax
ja 0x4d3488
lea ecx, [0x67be00]
xor ebp, ebp
xor edi, edi
jmp 0x4d34ca
mov dword [esp + 0x58], eax
lea ecx, [0x67be00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
lea ecx, [0x531ac0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, ecx
mov edi, edx
mov ecx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], edi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x54], ebp
mov edx, dword [0x651684]
sub eax, edx
mov ebx, dword [0x651680]
lea eax, [ecx + eax*4]
mov dword [esp], eax
mov dword [esp + 4], ebx
shl edx, 2
mov dword [esp + 8], edx
call sym.runtime.memmove
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jae 0x4d37e2
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x7c]
mov dword [edx + eax*4 + 4], ecx
mov ebx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ebx
mov ebx, dword [0x67c100]
test ebx, ebx
jne 0x4d353a
mov ebx, dword [esp + 0x8c]
jmp 0x4d354e
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x8c]
mov dword [edi], ebx
mov ebp, dword [edx + eax*4]
mov dword [edi + 4], ebp
mov dword [edx + eax*4], ebx
lea eax, [0x531bc0]
mov dword [esp], eax
shr ecx, 1
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4 + 0x1c], edx
mov dword [ebx + ecx*4 + 0x20], edx
mov ebp, dword [0x67c100]
test ebp, ebp
je 0x4d35a3
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + ecx*4 + 0x18]
mov dword [edi + 4], ebp
mov dword [ebx + ecx*4 + 0x18], eax
xor eax, eax
jmp 0x4d37be
mov eax, 1
jmp 0x4d3792
mov eax, 1
jmp 0x4d3792
mov ecx, dword [esp + 0xc0]
cmp ecx, esi
jbe 0x4d37b3
mov ebp, dword [esp + 0xbc]
mov byte [ebp + esi], 0
mov ebp, dword [ebx + edx*4 + 0x1c]
test ebp, ebp
je 0x4d35ef
mov eax, 1
jmp 0x4d3792
mov ebp, dword [ebx + edx*4 + 4]
mov edi, dword [esp + 0x78]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp ecx, ebp
jbe 0x4d363f
mov edx, dword [eax + ebp*4]
cmp dword [edi + 0x18], edx
jbe 0x4d3639
mov ebx, dword [edi + 0x10]
cmp edx, ebx
jae 0x4d37aa
mov ebx, dword [edi + 0xc]
lea edx, [ebx + edx*4]
cmp dword [edx], ebp
jne 0x4d362a
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xa8]
jmp 0x4d365f
cmp ecx, ebp
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xa8]
jmp 0x4d363f
cmp ecx, ebp
mov edx, dword [esp + 0x5c]
nop
jbe 0x4d365f
mov ecx, dword [edi + 0x18]
mov dword [eax + ebp*4], ecx
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
cmp eax, ecx
jae 0x4d37a5
mov ecx, dword [edi + 0xc]
mov dword [ecx + eax*4], ebp
inc dword [edi + 0x18]
mov eax, dword [0x651694]
test eax, eax
ja 0x4d3675
lea ecx, [0x67be00]
xor ebp, ebp
xor edi, edi
jmp 0x4d36b7
mov dword [esp + 0x58], eax
lea ecx, [0x67be00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
lea ecx, [0x531ac0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, edx
mov edi, ecx
mov ecx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x88], ecx
mov edx, dword [0x651694]
sub eax, edx
mov ebx, dword [0x651690]
lea eax, [ecx + eax*4]
mov dword [esp], eax
mov dword [esp + 4], ebx
shl edx, 2
mov dword [esp + 8], edx
call sym.runtime.memmove
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jae 0x4d37a0
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x7c]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov ecx, dword [0x67c100]
test ecx, ecx
jne 0x4d3727
mov ecx, dword [esp + 0x88]
jmp 0x4d373b
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov ebx, dword [edx + eax*4]
mov dword [edi + 4], ebx
mov dword [edx + eax*4], ecx
lea eax, [0x530c40]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + ecx*4 + 4]
mov dword [eax], ebx
mov dword [edx + ecx*4 + 0x1c], 1
mov dword [edx + ecx*4 + 0x20], 1
mov ebx, dword [0x67c100]
test ebx, ebx
je 0x4d3789
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + ecx*4 + 0x18]
mov dword [edi + 4], ebx
mov dword [edx + ecx*4 + 0x18], eax
mov eax, 1
mov byte [esp + 0xc8], al
add esp, 0xb4
ret
call sym.runtime.panicIndexU
call sym.runtime.panicIndexU
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jge 0x4d37d4
mov ebp, dword [ebx + ecx*4 + 0x1c]
mov esi, dword [ebx + ecx*4 + 0x18]
mov edi, dword [ebx + ecx*4 + 4]
cmp eax, ebp
jb 0x4d37ba
jmp 0x4d37db
mov eax, 1
jmp 0x4d3792
mov ecx, ebp
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
call sym.runtime.panicIndexU
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jae 0x4d38c9
lea ebx, [ebx + ebx*2]
mov ebp, dword [esp + 0x7c]
mov dword [ebp + ebx*4 + 4], edx
mov dword [ebp + ebx*4 + 8], ecx
mov ecx, dword [0x67c100]
test ecx, ecx
je 0x4d3836
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [ebp + ebx*4]
mov dword [edi + 4], ecx
mov dword [ebp + ebx*4], eax
lea eax, [0x531bc0]
mov dword [esp], eax
shr edx, 1
lea eax, [edx + 1]
mov dword [esp + 0x58], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4 + 0x1c], edx
mov dword [ebx + ecx*4 + 0x20], edx
mov ebp, dword [0x67c100]
test ebp, ebp
je 0x4d388c
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + ecx*4 + 0x18]
mov dword [edi + 4], ebp
mov dword [ebx + ecx*4 + 0x18], eax
xor eax, eax
jmp 0x4d3898
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jge 0x4d38ae
mov ebp, dword [ebx + ecx*4 + 0x1c]
mov esi, dword [ebx + ecx*4 + 0x18]
mov edi, dword [ebx + ecx*4 + 4]
cmp eax, ebp
jb 0x4d3894
jmp 0x4d38c2
mov ecx, dword [esp + 0xa4]
mov byte [ecx], 7
mov eax, 1
jmp 0x4d3792
mov ecx, ebp
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, ebp
call sym.runtime.panicIndexU
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov dword [esp + 0x70], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ecx
mov dword [edx + ebx*4 - 8], eax
mov dword [edx + ebx*4 - 4], eax
mov dword [esp], eax
call sym.unicode.SimpleFold
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x44]
cmp eax, ebp
je 0x4d394e
add ebx, 2
cmp ecx, ebx
jae 0x4d38db
mov dword [esp + 0x3c], eax
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
lea eax, [0x531ac0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
jmp 0x4d38db
mov dword [esp + 0x58], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x84], edx
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call sym.runtime.convTslice
mov eax, dword [esp + 0xc]
lea ecx, [0x585bfc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.sort.Sort
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x58]
jmp 0x4d37fc
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jae 0x4d3a85
lea ebx, [ebx + ebx*2]
mov ebp, dword [esp + 0x7c]
mov dword [ebp + ebx*4 + 4], eax
mov dword [ebp + ebx*4 + 8], edx
mov edx, dword [0x67c100]
test edx, edx
je 0x4d39f4
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [ebp + ebx*4]
mov dword [edi + 4], edx
mov dword [ebp + ebx*4], ecx
lea ecx, [0x531bc0]
mov dword [esp], ecx
shr eax, 1
inc eax
mov dword [esp + 0x58], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4 + 0x1c], edx
mov dword [ebx + ecx*4 + 0x20], edx
mov ebp, dword [0x67c100]
test ebp, ebp
je 0x4d3a48
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + ecx*4 + 0x18]
mov dword [edi + 4], ebp
mov dword [ebx + ecx*4 + 0x18], eax
xor eax, eax
jmp 0x4d3a54
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jge 0x4d3a6a
mov ebp, dword [ebx + ecx*4 + 0x1c]
mov esi, dword [ebx + ecx*4 + 0x18]
mov edi, dword [ebx + ecx*4 + 4]
cmp eax, ebp
jb 0x4d3a50
jmp 0x4d3a7e
mov ecx, dword [esp + 0xa4]
mov byte [ecx], 7
mov eax, 1
jmp 0x4d3792
mov ecx, ebp
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, ebp
call sym.runtime.panicIndexU
mov dword [esp + 0x74], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ecx
mov dword [edx + ebx*4 - 8], eax
mov dword [edx + ebx*4 - 4], eax
mov dword [esp], eax
call sym.unicode.SimpleFold
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x48]
cmp eax, ebp
je 0x4d3b01
add ebx, 2
cmp ecx, ebx
jae 0x4d3a8e
mov dword [esp + 0x40], eax
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
lea eax, [0x531ac0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
jmp 0x4d3a8e
mov dword [esp + 0x80], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x30], ebx
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call sym.runtime.convTslice
mov eax, dword [esp + 0xc]
lea ecx, [0x585bfc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.sort.Sort
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x58]
jmp 0x4d39ba
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jge 0x4d3b77
mov ebp, dword [ebx + ecx*4 + 0x1c]
mov esi, dword [ebx + ecx*4 + 0x18]
mov edi, dword [ebx + ecx*4 + 4]
cmp eax, ebp
jb 0x4d3b5d
jmp 0x4d3b81
movzx eax, byte [esp + 0x2b]
jmp 0x4d3792
mov ecx, ebp
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, edi
mov ecx, esi
call sym.runtime.panicIndexU
mov eax, ebx
mov ecx, esi
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jge 0x4d3bc9
mov ebp, dword [ebx + ecx*4 + 0x1c]
mov esi, dword [ebx + ecx*4 + 0x18]
mov edi, dword [ebx + ecx*4 + 4]
cmp eax, ebp
jb 0x4d3baf
jmp 0x4d3bd3
movzx eax, byte [esp + 0x2b]
jmp 0x4d3792
mov ecx, ebp
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, edi
mov ecx, esi
call sym.runtime.panicIndexU
mov eax, ebx
mov ecx, esi
call sym.runtime.panicIndexU
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, edi
call sym.runtime.panicIndexU
mov eax, ebp
call sym.runtime.panicIndexU
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
mov eax, ebp
call sym.runtime.panicIndexU
mov eax, edi
mov ecx, ebp
call sym.runtime.panicIndexU
mov ecx, edi
call sym.runtime.panicIndexU
mov ecx, edx
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
nop
call sym.runtime.morestack
jmp sym.regexp.makeOnePass.func1